Share via


不帶正負號的右移設定運算子 (>>>=)

利用運算式值中所指定的位元數將變數值進行向右移位,不須保持正負號,然後將結果指派給變數。

result >>>= expression

引數

  • result
    任意數值變數。

  • expression
    任何數值運算式。

備註

使用本運算子的方式幾乎與指定 result = result >>> expression 相同,但 result 只會評估一次。

>>>= 運算子利用 expression 中所指定的位元數將 result 的位元向右移位。 從左邊開始填入零。 移出右邊界的數字會被捨棄。 運算子對 expression 會產生遮罩,以避免 result 移位太多。 否則,如果移位量超過 result 資料型別中的位元數,則所有原始位元都會移出而無法產生一般結果。 為了確保每個移位至少都能留下一個原始位元,移位運算子使用以下公式來計算實際的移位量:以 result 中的位元數減一來做為 expression 的遮罩 (使用位元 AND 運算子)。

範例

例如:

var temp
temp = -14
temp >>>= 2

變數 temp 的初始值是 -14 (二進位數字之二的補數中的 11111111 11111111 11111111 11110010)。 向右移兩個位元時,值就等於 1073741820 (二進位為 00111111 11111111 11111111 11111100)。

若要暸解遮罩的作業方式,請參考以下範例。

var x : byte = 15;
// A byte stores 8 bits.
// The bits stored in x are 00001111
x >>>= 10;
// Actual shift is 10 & (8-1) = 2
// The bits stored in x are 00000011
// The value of x is 3
print(x); // Prints 3

需求

1 版

請參閱

參考

不帶正負號的右移運算子 (>>>)

位元左移運算子 (<<)

位元右移運算子 (>>)

設定運算子 (=)

概念

運算子優先順序

運算子摘要

由位元運算子強制型轉