在位模式上執行算術左移。
語法
result = pattern << amount
組件
result
必須的。 整數數值。 移動位模式的結果。 數據類型與 pattern的數據類型相同。
pattern
必須的。 整數數值表達式。 要移位的位模式。 數據類型必須是整數型別(SByte、、、ByteShort、UShort、、UIntegerInteger、 Long或 ULong)。
amount
必須的。 數值表達式。 要轉移位模式的位數。 資料類型必須 Integer 或擴大為 Integer。
備註
算術移位不是循環移位,這表示從結果的一端移出的位元不會在另一端重新引入。 在算術左移中,會捨棄超出結果數據類型範圍的位,並將右邊的位位置設定為零。
為了防止移位超過結果所能保留的位,Visual Basic 會以對應至 數據類型pattern的大小遮罩來遮罩的值amount。 這些值的二進位 AND 用於班次數量。 大小遮罩如下所示:
的數據類型 pattern |
大小遮罩 (十進位) | 大小遮罩 (十六進位) |
|---|---|---|
SByte、Byte |
7 | &H00000007 |
Short、UShort |
15 | &H0000000F |
Integer、UInteger |
31 | &H0000001F |
Long、ULong |
63 | &H0000003F |
如果 amount 為零,的值 result 會與的值 pattern相同。 如果 amount 為負數,則會將其視為不帶正負號的值,並以適當的大小遮罩來遮罩。
算術移位永遠不會產生溢位例外狀況。
備註
<<運算子可以多載,這表示當作數具有該類別或結構的類型時,類別或結構可以重新定義其行為。 如果您的程式代碼在這類類別或結構上使用這個運算符,請確定您已瞭解其重新定義的行為。 如需詳細資訊,請參閱 運算符程式。
範例
下列範例會 << 使用 運算符,對整數值執行算術左移。 結果一律與所移動的表達式數據類型相同。
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
上一個範例的結果如下所示:
result1為 192 (0000 0000 1100 0000)。result2為 3072 (0000 1100 0000 00000)。result3為 -32768 (1000 0000 0000 00000)。result4是 384 (0000 0001 1000 0000)。result5是 0 (向左移 15 個位置)。
的班次金額 result4 計算為 17 AND 15,等於 1。