JavaScriptのビット演算子「&(AND)」とは?仕組みと使い方を解説
JavaScriptのビットごとのAND演算子(&)は、2つの整数の引数に対して、ビット単位で論理AND演算を実行する演算子です。
具体的には、2つの数値を2進数で表現したとき、同じ位置にあるビット同士を比較します。両方のビットが1である場合にのみ1を返し、どちらか一方でも0であれば結果は0になります。
AND演算の真理値表
- 1 & 1 → 1
- 1 & 0 → 0
- 0 & 1 → 0
- 0 & 0 → 0
使用例
以下のコードを実行して、ビットごとのAND演算子の動作を確認してみましょう。
<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は2(2進数で「10」)、変数bは3(2進数で「11」)です。それぞれのビットを比較すると、次のようになります。
10 (2) 11 (3) ---- 10 (2)
左のビットは両方とも1なので1、右のビットは片方が0なので0となり、結果は「10」、つまり2が出力されます。
このように、AND演算子(&)はフラグの判定やマスク処理など、ビットレベルの操作を行いたい場面で活用されます。
-
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++のビットごとのAND演算子とは?仕組みと使い方を解説
C++におけるビットごとのAND演算子(&)は、2つのオペランドの各ビットを対応する位置ごとに比較する演算子です。両方のビットが1である場合のみ、結果の該当ビットが1に設定されます。それ以外の場合は0になります。この演算子を使用する際、両方のオペランドは整数型(integral型)である必要があります。浮動小数点型には使用できません。ビットごとのANDの真理値表各ビットの組み合わせに対する結果は以下の通りです。0 & 0 → 00 & 1 → 01 & 0 → 01 & 1 → 1サンプルコード次の例では、16進数で表された2つのunsigned sho