비트 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비트 정수로 변환합니다.

시도해보기

const a = 5; // 00000000000000000000000000000101
const b = -3; // 11111111111111111111111111111101

console.log(~a); // 11111111111111111111111111111010
// Expected output: -6

console.log(~b); // 00000000000000000000000000000010
// Expected output: 2

구문

~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® 2025 Language Specification
# sec-bitwise-not-operator

브라우저 호환성

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
Bitwise NOT (~a)

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

같이 보기