Share via


<< Operator (Visual Basic)

Utför ett aritmetiskt vänsterskift på ett bitmönster.

Syntax

result = pattern << amount  

Delar

result
Obligatoriska. Integral numeriskt värde. Resultatet av att flytta bitmönstret. Datatypen är samma som patternför .

pattern
Obligatoriska. Integral numeriskt uttryck. Bitmönstret som ska flyttas. Datatypen måste vara en integrerad typ (SByte, Byte, Short, UShort, Integer, UInteger, Longeller ULong).

amount
Obligatoriska. Numeriskt uttryck. Antalet bitar för att ändra bitmönstret. Datatypen måste vara Integer eller utvidgas till Integer.

Kommentarer

Aritmetiska skift är inte cirkulära, vilket innebär att de bitar som flyttas från ena änden av resultatet inte återinförs i den andra änden. I ett aritmetiskt vänsterskift ignoreras de bitar som flyttas utanför intervallet för resultatdatatypen och bitpositionerna som töms till höger är inställda på noll.

För att förhindra ett skift med fler bitar än vad resultatet kan innehålla maskerar Visual Basic värdet amount för med en storleksmask som motsvarar datatypen patternför . Binärt OCH för dessa värden används för skiftmängden. Storleksmaskerna är följande:

Datatyp för pattern Storleksmask (decimal) Storleksmask (hexadecimal)
SByte, Byte 7 &H00000007
Short, UShort 15 &H0000000F
Integer, UInteger 31 &H0000001F
Long, ULong 63 &H0000003F

Om amount är noll är värdet för result identiskt med värdet patternför . Om amount är negativt tas det som ett osignerat värde och maskeras med lämplig storleksmask.

Aritmetiska skift genererar aldrig undantag för spill.

Kommentar

Operatorn << kan överbelastas, vilket innebär att en klass eller struktur kan omdefiniera sitt beteende när en operande har den typen av klass eller struktur. Om din kod använder den här operatorn i en sådan klass eller struktur bör du se till att du förstår dess omdefinierade beteende. Mer information finns i Operatorprocedurer.

Exempel

I följande exempel används operatorn << för att utföra aritmetiska vänsterskift på integralvärden. Resultatet har alltid samma datatyp som för uttrycket som flyttas.

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

Resultatet av föregående exempel är följande:

  • result1 är 192 (0000 0000 1100 0000).

  • result2 är 3072 (0000 1100 0000 0000).

  • result3 är -32768 (1000 0000 0000 0000).

  • result4 är 384 (0000 0001 1000 0000).

  • result5 är 0 (skiftade 15 platser till vänster).

Skiftbeloppet för result4 beräknas som 17 AND 15, vilket är lika med 1.

Se även