ビット演算子
【開発環境】
OS:Win11(64ビット)
VSCode1.72.2、
クロム
【ビット演算子の種類】
JavaScript では内部的に数値はすべて 64 ビットの浮動小数点数として処理されます。ただ、ビット演算子は 32 ビットの整数に変換してから処理されます。その為、小数部分は切り捨てられ、また 32 ビットを超える部分も切り捨てられますのでご注意ください。
【ビット論理積(AND)】
ビット論理積(&)は演算子の前と後ろのオペランドの同じ位置にあるビットを比較し、両方のビットが共に 1 の場合だけ 1 にします。それ以外は 0 にします。
サンプル
let num1 = 27543;
let num2 = 19024;
console.log(num1 & num2);
> 18960
【ビット論理和(OR)】
ビット論理和(|)は演算子の前と後ろのオペランドの同じ位置にあるビットを比較し、少なくともどちらか一つのビットが 1 の場合に 1 にします。それ以外は 0 にします。
サンプル
let num1 = 27543;
let num2 = 19024;
console.log(num1 | num2);
> 27607
【ビット排他的論理和(XOR)】
ビット排他的論理和(^)は演算子の前と後ろのオペランドの同じ位置にあるビットを比較し、どちらか一つのビットだけが 1 の場合に 1 にします。それ以外は 0 にします。
サンプル
let num1 = 27543;
let num2 = 19024;
console.log(num1 ^ num2);
>8647
【ビット論理否定(NOT)】
ビット論理否定(~)は演算子の後ろのオペランドに対してビットが 1 の場合は 0 、 0 の場合は 1 にします。
サンプル
let num1 = 27543;
console.log(~num1);
> -27544