Share via


位元右移運算子 (>>)

將運算式的位元向右移位,正負號保持不變。

expression1 >> expression2

引數

  • expression1
    任何數值運算式。

  • expression2
    任何數值運算式。

備註

>> 運算子使用 expression2 中指定的位元數,將 expression1 的位元向右移。 expression1 的正負號位元是用來從左邊開始填滿數字。 移出右邊界的數字會被捨棄。 expression1 的資料型別決定本運算子傳回的資料型別。

>> 運算子對 expression2 具有遮罩作用,以避免 expression1 移位太多。 否則,若移位量超過 expression1 資料型別中的位元數,則所有原始位元都會移出,而無法產生一般結果。 為了確保每次移位至少都能留下一個原始位元,移位運算子使用以下公式計算實際的移位量:以 expression1 中的位元數減一,做為 expression2 的遮罩 (使用位元 AND 運算子)。

範例

例如,在評估過下列程式碼之後,temp 具有 -4: -14 的值 (二進位數字之二的補數中的 11110010),向右移兩個位元就等於-4 (二進位數字之二的補數中的 11111100)。

var temp
temp = -14 >> 2

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

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

需求

1 版

請參閱

參考

位元左移運算子 (<<)

右移設定運算子 (>>=)

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

概念

運算子優先順序

運算子摘要

由位元運算子強制型轉