JavaScriptのビットNOT演算子(~)とは?使い方をわかりやすく解説
ビットNOT演算子(~)は、JavaScriptにおける単項演算子の一つです。オペランド(対象となる値)のすべてのビットを反転させることで動作します。つまり、0であったビットを1に、1であったビットを0に変換します。
ビットNOT演算子の基本的な仕組み
数値は内部的には2進数(ビット列)として扱われます。例えば、3という数値は2進数で「11」と表現されます。これに対して~演算子を適用すると、すべてのビットが反転され、結果は -(n + 1) と等しくなります。したがって、~3 の結果は -4 となります。
サンプルコード
以下のコードを実行して、ビットNOT演算子(~)の動作を確認してみましょう。
<html>
<body>
<script>
var b = 3; // ビット表現:11
document.write("(~b) => ");
result = (~b);
document.write(result);
</script>
</body>
</html>実行結果
(~b) => -4
このように、変数 b の値が3の場合、~b を計算すると -4 が出力されます。これは、3のビット表現「00000011」が反転されて「11111100」になり、2の補数表現では -4 を意味するためです。
まとめ
ビットNOT演算子(~)は、オペランドの全ビットを反転する単項演算子であり、実用上は -(n + 1) と同じ結果を返します。ビット単位の処理やフラグ管理などを行う際に役立つため、その挙動を理解しておくと良いでしょう。
-
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