JavaScriptのビットごとのOR(|)演算子とは?使い方をわかりやすく解説
JavaScriptにおけるビットごとのOR(|)演算子は、2つの数値を2進数のビット列として比較し、対応するビットのどちらか一方でも「1」であれば結果として「1」を返す演算子です。両方のビットが「0」の場合のみ、結果は「0」になります。
ビットOR演算の基本ルール
ビットごとのOR演算は、以下のようなルールで各ビットが評価されます。
- 0 | 0 → 0
- 0 | 1 → 1
- 1 | 0 → 1
- 1 | 1 → 1
サンプルコード
以下のコードを実行すると、JavaScriptのビットごとのOR(|)演算子の動作を確認できます。この例では、「7」と「1」をOR演算しています。
<!DOCTYPE html>
<html>
<body>
<script>
document.write("Bitwise OR Operator<br>");
// 7 = 00000000000000000000000000000111
// 1 = 00000000000000000000000000000001
document.write(7 | 1);
</script>
</body>
</html>実行結果の解説
このコードの出力結果は 7 となります。その理由を2進数で見てみましょう。
- 7(10進数)= 00000000000000000000000000000111(2進数)
- 1(10進数)= 00000000000000000000000000000001(2進数)
これら2つの数値をビットごとにOR演算すると、各桁でどちらかに「1」があれば「1」になるため、結果は 00000000000000000000000000000111、つまり10進数の「7」になります。
このように、ビットごとのOR(|)演算子は、フラグ管理やマスク処理など、低レベルなビット操作が必要な場面でよく活用されます。
-
JavaScriptのビット単位の右シフト(>>)演算子とは?仕組みと使い方を解説
JavaScriptのビット演算子「>>」(右シフト演算子)は、数値を2進数のビット列として扱い、指定した桁数だけビットを右へずらすための演算子です。シフトによって右端からあふれたビットは切り捨てられ、その部分は考慮されません。ビット単位の右シフト(>>)の仕組み「a >> b」と記述すると、a のビット列が b 桁分だけ右に移動します。このとき、最も右側のビットから順に失われていきます。また、負の数の場合は符号を維持するために、左側には1が補われます(符号伝播シフトと呼ばれます)。右に1ビットシフトすることは、概ね「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