JavaScriptのビット左シフト演算子(<<)とは?仕組みと使い方を解説
ビット左シフト演算子(<<)とは
JavaScriptのビット左シフト演算子(<<)は、数値を2進数で表したときの各ビットを、指定した桁数だけ左へ移動させる演算子です。シフトによって右側に空いたビットには、1つ以上の「0」が埋められます。一方、左端からあふれたビットは破棄されます。
たとえば「7 << 1」は、7(2進数で 00000000000000000000000000000111)の各ビットを1桁左にずらすため、結果は 00000000000000000000000000001110、つまり10進数の「14」になります。
このように、左シフトは「元の数値 × 2のシフト桁数乗」と同じ結果を返します。7を1桁左にシフトすると 7 × 2 = 14 となるわけです。2桁シフトすれば4倍、3桁シフトすれば8倍になるため、掛け算の高速化などにも活用されます。
サンプルコード
以下のコードを実行すると、JavaScriptのビット左シフト演算子の動作を実際に確認できます。
<!DOCTYPE html>
<html>
<body>
<script>
document.write("Bitwise Left Shift Operator<br>");
// 7 = 00000000000000000000000000000111
document.write(7<<1);
</script>
</body>
</html>実行結果
Bitwise Left Shift Operator 14
この例では、7のビットを1桁左にシフトしているため、出力結果は「14」と表示されます。シフトする桁数を変更すれば、2倍・4倍・8倍といった計算結果を簡単に得られます。
-
JavaScriptのビット単位XOR(^)演算子とは?仕組みと使い方を解説
JavaScriptのビット単位XOR(^)演算子は、2つの数値をビットごとに比較し、対応するビットが異なる場合に1を、同じ場合に0を返す演算子です。「排他的論理和」とも呼ばれます。XOR演算のルールXOR演算子は、各ビットを以下のルールで評価します。0 ^ 0 = 01 ^ 0 = 10 ^ 1 = 11 ^ 1 = 0使用例次のコードを実行して、JavaScriptのビット単位XOR演算子の動作を確認してみましょう。<!DOCTYPE html> <html> <body> <sc
-
JavaScriptのビット演算子入門|NOT(~)・左シフト(<<)・右シフト(>>)をわかりやすく解説
JavaScriptのビット否定演算子(Bitwise NOT:~) チルダ記号(~)を使うビット否定演算子は、数値を32ビットの2進数として扱い、すべてのビットを反転させる演算です。「0」は「1」に、「1」は「0」に変わります。JavaScriptでは ~x の結果は必ず -(x + 1) と等しくなるという特徴があります。 コード例 <html> <body> <p id=not></p> <script> document.getElementById(not).innerHTML = ~ 13; </script