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

JavaScriptのビット単位XOR代入演算子(^=)とは?意味と使い方をわかりやすく解説

ビット単位XOR代入演算子(^=)とは

JavaScriptにおけるビット単位XOR代入演算子(^=)は、左オペランドと右オペランドに対してXOR(排他的論理和)のビット演算を実行し、その結果を左オペランドに代入する複合代入演算子です。

つまり、次の2つの式は同じ意味になります。

a ^= b;
// 上記は以下と同等
a = a ^ b;

XOR演算では、対応する各ビットが異なる場合に「1」、同じ場合に「0」が返されます。この性質により、フラグの切り替えや値の反転など、さまざまな場面で活用できます。

使用例

以下のコードを実行すると、ビット単位XOR代入演算子の動作を確認できます。

ライブデモ

<html>
  <body>
    <script>
      var a = 2;  // 2進数表記:10
      var b = 3;  // 2進数表記:11
      document.write("(a ^= b) => ");
      document.write(a ^= b);
    </script>
  </body>
</html>

実行結果の解説

この例では、変数 a の値「2」(2進数で 10)と、変数 b の値「3」(2進数で 11)をXOR演算します。

  10  (2)
^  11  (3)
----
  01  (1)

各ビットを比較すると、上位ビットは「1」と「1」で同じため「0」、下位ビットは「0」と「1」で異なるため「1」となり、結果は「1」が出力されます。演算後、変数 a にはこの結果である「1」が代入されます。

  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