ビット演算

JavaScriptに限った事じゃないけどビット演算って頭の中ですぐ出てこない。
勉強してた頃ならすぐ出るかもしれないけど。

AND &

OR |

XOR ^

NOT ~

左シフト <<

右シフト >>

0埋めの右シフト >>>
5 & 3 の結果は? 0101 & 0011 = 0001 で 1

5 | 3 の結果は? 0101 | 0011 = 0111 で 7

5 ^ 3 の結果は? 0101 ^ 0011 = 0110 で 6

~5 の結果は? 0101をビット反転させるから11111010 で -6

5 << 3 の結果は? 0101 を 3ビット 左にシフトだから 0101000 で 40

5 >> 3 の結果は?  0101 を 3ビット 右にシフトだから 0000 で 0

5 >>> 3 の結果は? 0101 を 3ビット 右にシフトで0のビットを左から埋めるから 0000 で 0

この辺、説明があって第1オペランドを指定したビット数分、指定された方向へシフトする
って言われても初心者は理解するのは少し難しいですよね。
# ごめんなさい、上記の例は右シフトの例がイマイチでした><

でビット演算を手軽にサクッと試すならブラウザのアドレスバー使おう!

以下をアドレスバーにコピペして下さい

javascript:alert(5&3);

javascript:alert(5|3);

javascript:alert(5^3);

javascript:alert(~5);

javascript:alert(5<<3);

javascript:alert(5>>3);

javascript:alert(5>>>3);

ビット演算を気軽に試したり、新入社員に教えたりするには良いと思います。