JavaScriptのビット単位XOR演算子(^)とは?仕組みと使い方をわかりやすく解説
ビット単位XOR演算子(^)とは
JavaScriptのビット単位XOR(排他的論理和)演算子「^」は、整数の引数の各ビットに対してブール値の排他的論理和演算を実行します。排他的論理和とは、2つのオペランドのどちらか一方だけが真である場合に真(1)となり、両方が真、または両方が偽の場合は偽(0)になる論理演算です。
ビットごとの演算結果
XOR演算では、対応する各ビットを比較し、ビットの値が異なる場合に「1」、同じ場合に「0」を返します。
| ビットA | ビットB | A ^ B の結果 |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
使用例
以下のコードを実行して、ビット単位XOR演算子の動作を確認してみましょう。変数aには2(2進数で「10」)、変数bには3(2進数で「11」)を代入し、XOR演算の結果を画面に表示します。
<html>
<body>
<script>
<!--
var a = 2; // 2進数表現: 10
var b = 3; // 2進数表現: 11
document.write("(a ^ b) => ");
result = (a ^ b);
document.write(result);
</script>
</body>
</html>
実行結果
(a ^ b) => 1
結果の解説
2は2進数で「10」、3は2進数で「11」と表現されます。XOR演算では、各ビットを右から順に比較し、ビットの値が異なる場合に「1」を返します。
- 1桁目:0 ^ 1 → 1
- 2桁目:1 ^ 1 → 0
そのため、演算結果は2進数で「01」、つまり10進数の「1」となります。このようにXOR演算子は、対応するビットが一致しない場合にのみ1を返すというシンプルなルールで動作します。
-
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
-
C++のビット単位XOR(排他的論理和)とは?仕組みと使い方を解説
ビット単位の排他的論理和(XOR)演算子「^」は、第1オペランドの各ビットと、第2オペランドの対応するビットを1つずつ比較する演算子です。比較した2つのビットが異なる値(片方が0でもう片方が1)であれば、結果の該当ビットは「1」にセットされます。逆に、両方のビットが同じ値(どちらも0、またはどちらも1)であれば、結果の該当ビットは「0」にセットされます。この演算子を使う際は、両方のオペランドが整数型(int型、unsigned short型など)である必要がある点に注意してください。浮動小数点型の値には適用できません。XORの真理値表ビットごとの演算結果は、次の真理値表のようにまとめられます。