共用方式為


<< 運算子 (Visual Basic)

更新:2007 年 11 月

執行位元模式的算術左移位。

result = pattern << amount

參數

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

  • pattern
    必要項,整數值運算式。要移位的位元模式。資料型別必須是整數型別 (Integer Type) (SByte、Byte、Short、UShort、Integer、UInteger、Long 或 ULong)。

  • amount
    必要項,數值運算式。位元模式移位的位元數。資料型別必須是 Integer 或擴展至 Integer。

備註

算術移位 (Arithmetic Shift) 不是循環型,這表示位元從結果的某一端移出後,不會從另一端再次進入。在算術左移位中,位元移動的範圍若超過結果資料型別會予以捨棄,而且右方空出的位元位置會設定成零。

為防止位元移位超過結果能接受的程度,Visual Basic 會以符合 pattern 資料型別的大小遮罩 (Mask) 來標記 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 0000)。

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

  • result4 是 384 (0000 0001 1000 0000)。

  • result5 是 0 (往左移動 15 位)。

result4 位移量會以 17 AND 15 計算,即等於 1。

請參閱

概念

Visual Basic 的算術運算子

參考

位元移位運算子

設定運算子

<<= 運算子 (Visual Basic)

Visual Basic 中的運算子優先順序

運算子 (依功能排列)