Unsigned right shift (>>>)

符号なし右シフト演算子 (>>>) (ゼロ埋め右シフト) は、1つ目のオペランドを指定されたビット数だけ右にずらします。右にずらしてあふれたビットは廃棄されます。0のビットが左からずれて入ります。符号ビットは 0 になりますので、結果は負の数にはなりません。他のビット毎演算子とは異なり、ゼロ埋め右シフトは符号なし32ビット整数を返します。

構文

a >>> b

解説

この演算子は、1つ目のオペランドを指定されたビット数だけ右にずらします。右にずらしてあふれたビットは廃棄されます。0のビットが左からずれて入ります。符号ビットは 0 になりますので、結果は負の数にはなりません。他のビット毎演算子とは異なり、ゼロ埋め右シフトは符号なし32ビット整数を返します。

負の数ではない場合、ゼロ埋め右シフトと符号保存右シフトは同じ結果をになります。例えば、 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進数)

符号なし右シフトの使用

 9 >>> 2; // 2
-9 >>> 2; // 1073741821

仕様書

仕様書
ECMAScript (ECMA-262)
Bitwise Shift Operators の定義

ブラウザーの互換性

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung InternetNode.js
Bitwise unsigned right shift (a >>> b)Chrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 3Opera 完全対応 3Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100

凡例

完全対応  
完全対応

関連情報