Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Führt eine arithmetische linke Schicht für ein Bitmuster aus.
Syntax
result = pattern << amount
Bestandteile
result
Erforderlich. Integraler numerischer Wert. Das Ergebnis der Verschiebung des Bitmusters. Der Datentyp ist identisch mit dem des Datentyps .pattern
pattern
Erforderlich. Integraler numerischer Ausdruck. Das zu verschiebende Bitmuster. Der Datentyp muss ein integraler Typ sein (SByte, , Byte, Short, UShort, UIntegerInteger, , oder ULongLong).
amount
Erforderlich. Numerischer Ausdruck. Die Anzahl der Bits, um das Bitmuster zu verschieben. Der Datentyp muss auf IntegerInteger.
Bemerkungen
Arithmetische Verschiebungen sind nicht kreisförmig, was bedeutet, dass die Bits, die von einem Ende des Ergebnisses entfernt werden, nicht am anderen Ende wieder angefügt werden. In einer arithmetischen linken Schicht werden die Bits, die über den Bereich des Ergebnisdatentyps verschoben wurden, verworfen, und die auf der rechten Seite leer gestellten Bitpositionen werden auf Null festgelegt.
Um eine Schicht um mehr Bits zu verhindern, als das Ergebnis enthalten kann, maskiert Visual Basic den Wert amount mit einer Größenmaske, die dem Datentyp von patternentspricht. Die binäre AND dieser Werte wird für den Schichtbetrag verwendet. Die Größenmasken sind wie folgt:
Datentyp von pattern |
Größenmaske (Dezimalformat) | Größenmaske (hexadezimal) |
|---|---|---|
SByte, Byte |
7 | &H00000007 |
Short, UShort |
15 | &H0000000F |
Integer, UInteger |
31 | &H0000001F |
Long, ULong |
63 | &H0000003F |
Wenn amount null ist, ist der Wert des result Werts identisch mit dem Wert von pattern. Ist amount dies negativ, wird sie als nicht signierter Wert verwendet und mit der entsprechenden Größenmaske maskiert.
Arithmetische Verschiebungen lösen niemals Überlauf-Ausnahmen aus.
Hinweis
Der << Operator kann überladen werden, was bedeutet, dass eine Klasse oder Struktur ihr Verhalten neu definieren kann, wenn ein Operand den Typ dieser Klasse oder Struktur aufweist. 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 Operatorprozeduren.
Beispiel
Im folgenden Beispiel wird der << Operator verwendet, um arithmetische linke Schichten für integrale Werte auszuführen. Das Ergebnis hat immer denselben Datentyp wie der des Ausdrucks, 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 sind wie folgt:
result1ist 192 (0000 0000 1100 0000).result2ist 3072 (0000 1100 0000 0000).result3ist -32768 (1000 0000 0000 0000 0000).result4ist 384 (0000 0001 1000 0000).result5ist 0 (um 15 Stellen nach links verschoben).
Der Schichtbetrag result4 wird als 17 UND 15 berechnet, was 1 entspricht.