<<– Operátor (Visual Basic)

Provede aritmetický levý posun na bitový vzorek.

Syntax

result = pattern << amount  

Součásti

result
Povinná hodnota. Integrální číselná hodnota. Výsledek posunu bitového vzoru. Datový typ je stejný jako u pattern .

pattern
Povinná hodnota. Integrální číselný výraz. Bitový vzorek, který se má posunout. Datový typ musí být integrální typ ( SByte , Byte , Short , UShort , Integer , UInteger , Long , nebo ULong ).

amount
Povinná hodnota. Číselný výraz. Počet bitů pro posunutí bitového vzoru. Datový typ musí být Integer nebo rozšířit na Integer .

Poznámky

Aritmetické posuny nejsou cyklické, což znamená, že bity posunuté o jeden konec výsledku nejsou znovu zavedeny na druhém konci. V aritmetickém levém Shift se bity, které přesahují rozsah výsledných dat, zahodí a bitové pozice uvolněné na pravé straně mají nastavenou hodnotu nula.

aby se zabránilo posunu více bitů, než je výsledek, Visual Basic maskuje hodnotu amount s maskou velikosti, která odpovídá datovému typu pattern . Binární soubor a tyto hodnoty se použijí pro velikost Shift. Masky velikosti jsou následující:

Datový typ pattern Velikost – maska (desítková) Velikost – maska (šestnáctkově)
SByte, Byte 7 &H00000007
Short, UShort 15 &H0000000F
Integer, UInteger 31 &H0000001F
Long, ULong 63 &H0000003F

Pokud amount je nula, hodnota result je shodná s hodnotou pattern . Pokud amount je záporná, je pořízena jako hodnota bez znaménka a maskována odpovídající maskou velikosti.

Aritmetické posuny nikdy negenerují výjimky přetečení.

Poznámka

<<Operátor může být přetížen, což znamená, že třída nebo struktura může předefinovat své chování, pokud má operand typ této třídy nebo struktury. Pokud váš kód používá tento operátor na takové třídě nebo struktuře, ujistěte se, že rozumíte jeho předefinovanému chování. Další informace naleznete v tématu procedury operátorů.

Příklad

Následující příklad používá << operátor k provádění aritmetických operací doleva u integrálních hodnot. Výsledek má vždycky stejný datový typ jako výraz, který se posouvá.

Dim pattern As Short = 192
' The bit pattern is 0000 0000 1100 0000.
Dim result1, result2, result3, result4, result5 As Short
result1 = pattern << 0
result2 = pattern << 4
result3 = pattern << 9
result4 = pattern << 17
result5 = pattern << -1

Výsledky předchozího příkladu jsou následující:

  • result1 je 192 (0000 0000 1100 0000).

  • result2 je 3072 (0000 1100 0000 0000).

  • result3 je-32768 (1000 0000 0000 0000).

  • result4 je 384 (0000 0001 1000 0000).

  • result5 je 0 (posun 15 míst doleva).

Hodnota posunu pro result4 se počítá jako 17 a 15, což se rovná 1.

Viz také