Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Utför ett aritmetiskt vänsterskift på ett bitmönster.
Syntax
result = pattern << amount  
Delar
result
Obligatoriskt. Integral numeriskt värde. Resultatet av att flytta bitmönstret. Datatypen är samma som patternför .
pattern
Obligatoriskt. Integral numeriskt uttryck. Bitmönstret som ska flyttas. Datatypen måste vara en integrerad typ (SByte, Byte, Short, UShort, Integer, UInteger, Longeller ULong).
amount
Obligatoriskt. Numeriskt uttryck. Antalet bitar för att ändra bitmönstret. Datatypen måste vara Integer eller utvidgas till Integer.
Anmärkningar
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.
Anmärkning
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.