<< – operátor (Visual Basic)

Provede aritmetický levý posun v bitovém vzoru.

Syntaxe

result = pattern << amount  

Součástky

result
Povinný: Celočíselná číselná hodnota. Výsledek posunu bitového vzoru. Datový typ je stejný jako datový patterntyp .

pattern
Povinný: Celočíselný číselný výraz. Bitový vzor, který se má posunout. Datový typ musí být celočíselný typ (SByte, Byte, UShortShort, Integer, UInteger, , , Longnebo ULong).

amount
Povinný: Číselný výraz. Početbitch Datový typ musí být Integer nebo rozšířen na Integer.

Poznámky

Aritmetické posuny nejsou kruhové, což znamená, že bity posunuté z jednoho konce výsledku se na druhém konci znovu nevyvolají. V aritmetické levé směně se bity posunuté nad rozsah výsledného datového typu zahodí a pozice bitů vysazené vpravo jsou nastavené na nulu.

Aby se zabránilo posunu o více bitů, než může výsledek obsahovat, Visual Basic maskuje hodnotu amount maskou velikosti odpovídající datovému patterntypu . Binární hodnota AND těchto hodnot se používá pro velikost směny. Masky velikosti jsou následující:

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

Pokud amount je nula, je hodnota result identická s hodnotou pattern. Pokud amount je záporná, považuje se za nepodepsanou hodnotu a maskuje se odpovídající maskou velikosti.

Aritmetické směny 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 mohou předefinovat jeho chování, pokud operand má typ této třídy nebo struktury. Pokud váš kód používá tento operátor pro takovou třídu nebo strukturu, ujistěte se, že rozumíte jeho předdefinované chování. Další informace naleznete v tématu Procedury operátoru.

Příklad

Následující příklad používá << operátor k provádění aritmetických levých posunů na celočíselné hodnoty. Výsledek má vždy stejný datový typ jako posun výraz.

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 (posunuto 15 míst doleva).

Částka směny result4 se vypočítá jako 17 A 15, což se rovná 1.

Viz také