ビット否定演算子 (~
) は、オペランドの各ビットを反転します。
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
構文
~a
解説
オペランドは32ビットの整数値に変換され、ビット (ゼロまたは1) の並びによって表現されます。32ビットを超える数値は最上位のビットが破棄されます。例えば、次の32ビットを超える整数は32ビット整数に変換されます。
変換前: 11100110111110100000000000000110000000000001
変換後: 10100000000000000110000000000001
第1オペランドの各ビットは、第2オペランドの対応するビットと組み合わせになります。第1ビットは第1ビットへ、第2ビットは第2ビットへ、という具合にです。
この演算子は各ビットの組み合わせに適用され、結果はビット単位に構築されます。
NOT
演算の真理値表は次のようになります。
a | NOT a |
---|---|
0 | 1 |
1 | 0 |
9 (10進数) = 00000000000000000000000000001001 (2進数)
--------------------------------
~9 (10進数) = 11111111111111111111111111110110 (2進数) = -10 (10進数)
ある数 x
のビット否定 は -(x + 1)
になります。例えば、~-5
は 4
になります。
数値に32ビット表現を使用するため ~-1
および ~4294967295
(232-1) はいずれも 0
になることに注意してください。
例
ビット否定の使用
~0; // -1
~-1; // 0
~1; // -2
仕様
ブラウザーの互換性
BCD tables only load in the browser
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.