비트 NOT (~)
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
비트 NOT 연산자(~
)는 피연산자의 비트를 반전시킵니다. 다른 비트 연산자와 마찬가지로 피연산자를 32비트 정수로 변환합니다.
시도해보기
구문
~a
설명
피연산자는 32비트 정수로 변환되며 일련의 비트(0과 1)로 표현됩니다. 32비트를 넘어가는 숫자는 최상위 비트를 기준으로 하여 삭제합니다. 예를 들어 다음과 같은 32비트 이상인 정수는 32비트 정수로 변환됩니다.
Before: 11100110111110100000000000000110000000000001 After: 10100000000000000110000000000001
피연산자의 각 비트는 반전됩니다.
NOT
연산에 대한 진리표는 다음과 같습니다.
a | NOT a |
---|---|
0 | 1 |
1 | 0 |
js
9 (base 10) = 00000000000000000000000000001001 (base 2)
--------------------------------
~9 (base 10) = 11111111111111111111111111110110 (base 2) = -10 (base 10)
32비트 정수 피연산자는 2의 보수에 따라 반전됩니다. 즉, 최상위 비트는 음수인 정수를 표현하는 데 사용합니다.
어떤 수 x
에 대해 NOT 비트 연산을 하면 -(x + 1)
의 결과를 도출합니다. 예를 들면 ~-5
는 4
로 계산됩니다.
32비트 표현을 사용하기 때문에 ~-1
과 ~4294967295
(232 - 1) 의 결과가 둘 다 0
으로 계산되는 점을 유의해주세요.
예제
비트 NOT 연산 사용하기
js
~0; // -1
~-1; // 0
~1; // -2
명세
Specification |
---|
ECMAScript Language Specification # sec-bitwise-not-operator |
브라우저 호환성
BCD tables only load in the browser