This page was translated from English by the community.Learn more and join the MDN Web Docs community.
비트 NOT (~)
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015년 7월.
비트 NOT 연산자(~)는 피연산자의 비트를 반전시킵니다. 다른 비트 연산자와 마찬가지로 피연산자를 32비트 정수로 변환합니다.
In this article
시도해 보기
const a = 5; // 00000000000000000000000000000101const b = -3; // 11111111111111111111111111111101console.log(~a); // 11111111111111111111111111111010// Expected output: -6console.log(~b); // 00000000000000000000000000000010// Expected output: 2구문
~a
설명
피연산자는 32비트 정수로 변환되며 일련의 비트(0과 1)로 표현됩니다. 32비트를 넘어가는 숫자는 최상위 비트를 기준으로 하여 삭제합니다. 예를 들어 다음과 같은 32비트 이상인 정수는 32비트 정수로 변환됩니다.
Before: 11100110111110100000000000000110000000000001After: 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® 2026 Language Specification> # sec-bitwise-not-operator> |