Delen via


<< Operator (Visual Basic)

Hiermee voert u een rekenkundige linker shift uit op een bitpatroon.

Syntaxis

result = pattern << amount  

generator

result
Vereist. Integrale numerieke waarde. Het resultaat van het verschuiven van het bitpatroon. Het gegevenstype is hetzelfde als dat van pattern.

pattern
Vereist. Integrale numerieke expressie. Het bitpatroon dat moet worden verschoven. Het gegevenstype moet een integraal type zijn (SByte, Byte, Short, UShort, Integer, UIntegerof LongULong).

amount
Vereist. Numerieke expressie. Het aantal bits dat het bitpatroon moet worden verplaatst. Het gegevenstype moet worden Integer uitgebreid of uitgebreid tot Integer.

Opmerkingen

Rekenkundige verschuivingen zijn niet cirkelvormig, wat betekent dat de bits die van het ene uiteinde van het resultaat zijn verschoven, niet opnieuw worden geïntroduceerd aan het andere uiteinde. In een rekenkundige linkerdienst worden de bits die buiten het bereik van het resultaatgegevenstype zijn verschoven, verwijderd en worden de bitposities aan de rechterkant ingesteld op nul.

Om een verschuiving met meer bits te voorkomen dan het resultaat kan bevatten, maskert Visual Basic de waarde van amount met een groottemasker dat overeenkomt met het gegevenstype van pattern. Het binaire EN van deze waarden wordt gebruikt voor de verschuivingshoeveelheid. De groottemaskers zijn als volgt:

Gegevenstype van pattern Groottemasker (decimaal) Groottemasker (hexadecimaal)
SByte, Byte 7 &H00000007
Short, UShort 15 &H0000000F
Integer, UInteger 31 &H0000001F
Long, ULong 63 &H0000003F

Als amount nul is, is de waarde result gelijk aan de waarde van pattern. Als amount dit negatief is, wordt deze als een niet-ondertekende waarde genomen en gemaskeerd met het juiste groottemasker.

Rekenkundige verschuivingen genereren nooit overloop-uitzonderingen.

Notitie

De << operator kan overbelast worden, wat betekent dat een klasse of structuur het gedrag ervan opnieuw kan definiëren wanneer een operand het type van die klasse of structuur heeft. Als uw code deze operator gebruikt voor een dergelijke klasse of structuur, moet u ervoor zorgen dat u begrijpt wat het opnieuw gedefinieerde gedrag is. Zie Operator Procedures voor meer informatie.

Opmerking

In het volgende voorbeeld wordt de << operator gebruikt om rekenkundige linkse verschuivingen uit te voeren op integrale waarden. Het resultaat heeft altijd hetzelfde gegevenstype als dat van de expressie die wordt verschoven.

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

De resultaten van het vorige voorbeeld zijn als volgt:

  • result1 is 192 (0000 0000 1100 0000).

  • result2 is 3072 (0000 1100 0000 0000).

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

  • result4 is 384 (0000 0001 1000 0000).

  • result5 is 0 (verschoven 15 plaatsen naar links).

Het verschuivingsbedrag result4 wordt berekend als 17 EN 15, die gelijk is aan 1.

Zie ook