JavaScript

>>(ビット右シフト演算子)

 編集:2022.08.07 by T.A.

1つ目のオペランドを、指定されたビット数だけ右にずらします。

右にずらしてあふれたビットは廃棄されます。最も左のビットをコピーしながらずれて入ります。最も左のビットが以前の最も左のビットと同じになるため、符号ビット(最も左のビット)は変化しません。よって「符号維持」という名前です。

X >> n
X オペランド
n シフト数(ビット数)

例えば、9 >> 2 は 2 となります:

     9(10進数):00000000000000000000000000001001(2進数)
                  --------------------------------
9 >> 2(10進数):00000000000000000000000000000010(2進数)=2(10進数)

同様に、-9 >> 2 は符号が保存されるため、-3 になります:

     -9(10進数):11111111111111111111111111110111(2進数)
                   --------------------------------
-9 >> 2(10進数):11111111111111111111111111111101(2進数)=-3(10進数)

テスト