JavaScriptの左シフト演算子(<<)とは?使い方をサンプルコード付きで解説
JavaScriptの左シフト演算子(<<)とは
左シフト演算子(<<)は、第1オペランドのすべてのビットを、第2オペランドで指定された桁数だけ左へ移動させるビット演算子です。移動後に空いた右側のビットには「0」が埋められます。
値を1ビット左にシフトすると2倍、2ビット左にシフトすると4倍になる、というように、左シフトは2の累乗による乗算と同じ結果になります。
動作の仕組み
例えば、数値「2」は2進数で「10」と表されます。これを3ビット左にシフトすると「10000」、つまり10進数の「16」になります。これは 2 × 2³ = 16 の計算と一致します。
サンプルコード
以下のコードを実行して、ビット単位の左シフト演算子の動作を確認してみましょう。
<html>
<body>
<script>
var a = 2; // 2進数表現:10
var b = 3; // 2進数表現:11
document.write("(a << b) => ");
result =(a << b);
document.write(result); // 出力:16
</script>
</body>
</html>実行結果
(a << b) => 16
この例では、変数 a(2進数で「10」)を変数 b で指定された3ビット分だけ左にシフトしているため、結果は「16」となります。
注意点
JavaScriptのビット演算は32ビット整数に対して行われます。そのため、非常に大きな値をシフトした場合、オーバーフローや符号の反転など、意図しない結果が生じることがあります。また、シフト量は32で割った余りとして扱われる点にも注意しましょう。
-
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