JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptのビットごとのAND(&)演算子とは?仕組みと使い方をわかりやすく解説

JavaScriptのビットごとのAND(&)演算子は、2つの数値を2進数(ビット列)に変換したうえで、対応する各ビット同士を比較する演算子です。比較の結果、両方のビットが1である場合のみ1を返し、それ以外の場合は0を返します。

ビットAND演算の基本ルール

ビットごとのAND演算では、各桁のビットに対して次のような判定が行われます。

  • 1 & 1 → 1
  • 1 & 0 → 0
  • 0 & 1 → 0
  • 0 & 0 → 0

つまり、両方のオペランドの対応するビットが「1」のときだけ、結果も「1」になります。これは論理積(AND)と同じ考え方を、ビット単位で適用するものです。

サンプルコード

以下のコードを実行すると、JavaScriptのビットごとのAND演算子(&)の動作を確認できます。

<!DOCTYPE html>
<html>
   <body>
      <script>
         document.write("Bitwise AND Operator<br>");

         // 7 = 00000000000000000000000000000111
         // 1 = 00000000000000000000000000000001
         document.write(7 & 1);
      </script>
   </body>
</html>

実行結果の解説

この例では、数値「7」と「1」をAND演算しています。それぞれの数値は32ビットの2進数で次のように表されます。

  • 7 → 00000000000000000000000000000111
  • 1 → 00000000000000000000000000000001

各ビットを比較すると、最下位ビットだけが両方とも「1」であり、残りのビットはどちらか一方または両方が「0」です。そのため、演算結果は次のようになります。

7 & 1 の結果: 1

このように、ビットごとのAND演算子は、フラグの判定やマスク処理など、2進数レベルでの効率的な計算が必要な場面でよく使われます。

  1. JavaScriptのビット単位の右シフト(>>)演算子とは?仕組みと使い方を解説

    JavaScriptのビット演算子「>>」(右シフト演算子)は、数値を2進数のビット列として扱い、指定した桁数だけビットを右へずらすための演算子です。シフトによって右端からあふれたビットは切り捨てられ、その部分は考慮されません。ビット単位の右シフト(>>)の仕組み「a >> b」と記述すると、a のビット列が b 桁分だけ右に移動します。このとき、最も右側のビットから順に失われていきます。また、負の数の場合は符号を維持するために、左側には1が補われます(符号伝播シフトと呼ばれます)。右に1ビットシフトすることは、概ね「2で割る」ことと同じ意味を持ちます。例え

  2. 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