비트 NOT (~)

비트 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)의 결과를 도출합니다. 예를 들면 ~-54로 계산됩니다.

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

같이 보기