<<Operator (Visual Basic)

Führt eine arithmetische Verschiebung nach links für ein Bitmuster aus.

Syntax

result = pattern << amount  

Bestandteile

result
Erforderlich. Integraler numerischer Wert. Das Ergebnis der Verschiebung des Bitmusters. Der Datentyp entspricht dem von pattern.

pattern
Erforderlich. Ein ganzzahliger numerischer Ausdruck. Das zu verschiebende Bitmuster. Der Datentyp muss ein ganzzahliger Typ (SByte, Byte, Short, UShort, Integer, UInteger, Long oder ULong) sein.

amount
Erforderlich. Ein numerischer Ausdruck. Die Anzahl der Bits, um die das Bitmuster verschoben werden soll. Der Datentyp muss Integer sein oder zu Integer erweitert werden.

Bemerkungen

Arithmetische Verschiebungen sind keine kreisförmigen Verschiebungen, was bedeutet, dass die bits, die von einem Ende des Ergebnisses verschoben werden, am anderen Ende nicht erneut eingeführt werden. Bei einer arithmetischen Verschiebung nach links werden die Bits, die über den Bereich des Ergebnisdatentyps hinaus verschoben werden, verworfen, und die auf der rechten Seite freigelassenen Bitpositionen werden auf 0 (null) festgelegt.

Um eine Verschiebung um mehr Bits zu verhindern, als das Ergebnis halten kann, maskiert Visual Basic den Wert von mit einer Größenmaske, die dem amount Datentyp von pattern entspricht. Das binäre AND dieser Werte wird für den Verschiebungsbetrag verwendet. Die Größenmasken lauten wie folgt:

Datentyp von pattern Größenmaske (dezimal) Größenmaske (hexadezimal)
SByte, Byte 7 &H00000007
Short, UShort 15 &H0000000F
Integer, UInteger 31 &H0000001F
Long, ULong 63 &H0000003F

Wenn amount 0 (null) ist, result ist der Wert von mit dem Wert von pattern identisch. Wenn negativ ist, wird er als Wert ohne Vorzeichen verwendet und mit der entsprechenden amount Größenmaske maskiert.

Arithmetische Verschiebungen generieren nie Überlaufausnahmen.

Hinweis

Der << -Operator kann überladen werden. Dies bedeutet, dass eine Klasse oder Struktur ihr Verhalten neu definieren kann, wenn ein Operand den Typ dieser Klasse oder Struktur auf hat. Wenn Ihr Code diesen Operator für eine solche Klasse oder Struktur verwendet, stellen Sie sicher, dass Sie das neu definierte Verhalten verstehen. Weitere Informationen finden Sie unter Operator Procedures.

Beispiel

Im folgenden Beispiel wird der << -Operator verwendet, um arithmetische Linksverschiebungen für integrale Werte durchzuführen. Das Ergebnis hat immer denselben Datentyp wie der ausdruck, der verschoben wird.

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

Die Ergebnisse des vorherigen Beispiels lauten wie folgt:

  • result1 ist 192 (0000 0000 1100 0000).

  • result2 ist 3072 (0000 1100 0000 0000).

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

  • result4 ist 384 (0000 0001 1000 0000).

  • result5 ist 0 (um 15 Stellen nach links verschoben).

Der result4 Verschiebungsbetrag für wird als 17 AND 15 berechnet, was 1 entspricht.

Siehe auch