JavaScriptのビット単位XOR(^)演算子とは?仕組みと使い方を解説
JavaScriptのビット単位XOR(^)演算子は、2つの数値をビットごとに比較し、対応するビットが異なる場合に1を、同じ場合に0を返す演算子です。「排他的論理和」とも呼ばれます。
XOR演算のルール
XOR演算子は、各ビットを以下のルールで評価します。
- 0 ^ 0 = 0
- 1 ^ 0 = 1
- 0 ^ 1 = 1
- 1 ^ 1 = 0
使用例
次のコードを実行して、JavaScriptのビット単位XOR演算子の動作を確認してみましょう。
<!DOCTYPE html>
<html>
<body>
<script>
document.write("Bitwise XOR Operator<br>");
// 7 = 00000000000000000000000000000111
// 1 = 00000000000000000000000000000001
document.write(7 ^ 1);
</script>
</body>
</html>実行結果の解説
この例では、7(2進数で ...0111)と1(2進数で ...0001)をXOR演算しています。下位3ビットに注目すると 111 ^ 001 = 110 となるため、結果は6(2進数で ...0110)になり、出力は「6」です。
このようにXOR演算子は、フラグの切り替えや値の入れ替え(スワップ)、暗号化処理など、さまざまな場面で活用されます。
-
JavaScriptのビット左シフト演算子(<<)とは?仕組みと使い方を解説
ビット左シフト演算子(<<)とはJavaScriptのビット左シフト演算子(<<)は、数値を2進数で表したときの各ビットを、指定した桁数だけ左へ移動させる演算子です。シフトによって右側に空いたビットには、1つ以上の「0」が埋められます。一方、左端からあふれたビットは破棄されます。たとえば「7 << 1」は、7(2進数で 00000000000000000000000000000111)の各ビットを1桁左にずらすため、結果は 00000000000000000000000000001110、つまり10進数の「14」になります。このように、左シフトは「元の数値 × 2のシフ
-
JavaScriptのビット単位の右シフト(>>)演算子とは?仕組みと使い方を解説
JavaScriptのビット演算子「>>」(右シフト演算子)は、数値を2進数のビット列として扱い、指定した桁数だけビットを右へずらすための演算子です。シフトによって右端からあふれたビットは切り捨てられ、その部分は考慮されません。ビット単位の右シフト(>>)の仕組み「a >> b」と記述すると、a のビット列が b 桁分だけ右に移動します。このとき、最も右側のビットから順に失われていきます。また、負の数の場合は符号を維持するために、左側には1が補われます(符号伝播シフトと呼ばれます)。右に1ビットシフトすることは、概ね「2で割る」ことと同じ意味を持ちます。例え