→
1つ目のオペランドを、指定されたビット数だけ右にずらします(ゼロ埋め右シフト)。
右にずらしてあふれたビットは廃棄されます。0 のビットが左からずれて入ります。符号ビットは 0 になりますので、結果は負の数にはなりません。他のビット毎演算子とは異なり、ゼロ埋め右シフトは符号なし32ビット整数を返します。
X | オペランド |
---|---|
n | シフト数(ビット数) |
負の数ではない場合、ゼロ埋め右シフトと符号保存右シフトは同じ結果になります。
例えば、9 >>> 2 は 2 となり、9 >> 2 と同じになります:
9(10進数):00000000000000000000000000001001(2進数) -------------------------------- 9 >>> 2(10進数):00000000000000000000000000000010(2進数)=2(10進数)
しかし、これは負の数の場合は当てはまりません。
例えば、-9 >>> 2 は 1073741821 になり、-9 >> 2(-3 になる)とは異なります:
-9(10進数):11111111111111111111111111110111(2進数) -------------------------------- -9 >>> 2(10進数):00111111111111111111111111111101(2進数)=1073741821(10進数)