This page is also available in 3 other languages

~

[Bitwise Operators]

설명

C++ 안의 비트 NOT 연산자는 물결 ~ 이다. & 및 | 와 달리 비트 NOT 연산자는 오른쪽에 있는 단일 피연산자에 적용된다. 비트 NOT는 각 비트를 반대로 바꾼다: 0은 1이 되고, 1은 0이 된다.

다른 말로:

0  1    operand1
-----
1  0   ~operand1

예제 코드

int a = 103;  // 이진수:  0000000001100111
int b = ~a;   // 이진수:  1111111110011000 = -104

주의와 경고

이 연산의 결과로 -104 같은 음수를 보고 놀랄 수 있겠다. 이것은 int 변수의 가장 높은 비트가 소위 부호 비트이기 때문. 가장 높은 비트가 1이면, 숫자는 음수로 해석된다. 이 양수와 음수 인코딩은 2의 보수라고 불린다. 자세한 내용은, 위키백과 two’s complement 를 보세요.

어떤 정수 x 에 대해, ~x 는 -x-1 과 같다는 것을 주목하는 것이 흠미롭다.

때로 부호있는 정수 식에서 부호 비트는 원치않는 놀라움을 일으킬 수 있다.

더보기