<< 運算子 (Visual Basic)

在位元模式上執行算術左移位。

語法

result = pattern << amount  

組件

result
必要。 整數數值。 移位位元模式的結果。 資料類型與 pattern 的資料類型相同。

pattern
必要。 整數數值運算式。 要移位的位元模式。 資料類型必須是整數型別 (SByteByteShortUShortIntegerUIntegerLongULong)。

amount
必要。 數值運算式。 要移位位元模式的位元數。 資料類型必須 Integer 或擴大為 Integer

備註

算術移位不是循環移位,這表示從結果的一端移出的位元不會在另一端重新引入。 在算術左移位中,會捨棄移位超出結果資料類型範圍的位元,而且會將右邊清空的位元位置設定為零。

為了防止移位超過結果所能保留的位元,Visual Basic 會使用對應至 pattern 資料類型的大小遮罩,對 amount 的值進行遮罩處理。 這些值的二進位 AND 會用於移位量。 大小遮罩如下所示:

pattern 的資料類型 大小遮罩 (十進位) 大小遮罩 (十六進位)
SByteByte 7 &H00000007
ShortUShort 15 &H0000000F
IntegerUInteger 31 &H0000001F
LongULong 63 &H0000003F

如果 amount 為零,則 result 的值會與 pattern 的值相同。 如果 amount 為負數,則會將其視為未帶正負號的值,並以適當的大小遮罩進行遮罩處理。

算術移位永遠不會產生溢位例外狀況。

注意

<< 運算子可以「多載」,這表示當運算元具有某個類別或結構的類型時,該類別或結構可以重新定義其行為。 如果您的程式碼在這類類別或結構上使用此運算子,請務必了解其重新定義的行為。 如需詳細資訊,請參閱 Operator Procedures

範例

下列範例使用 << 運算子,對整數值執行算術左移位。 結果一律具有與所移位之運算式相同的資料類型。

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 0000)。

  • result3 為 -32768 (1000 0000 0000 0000)。

  • result4 為 384 (0000 0001 1000 0000)。

  • result5 為 0 (向左移位 15 位數)。

result4 的移位量會計算為 17 AND 15,等於 1。

另請參閱