설명
C++ 안의 비트 NOT 연산자는 물결 ~
이다. & 및 | 와 달리 비트 NOT 연산자는 오른쪽에 있는 단일 피연산자에 적용된다.
비트 NOT는 각 비트를 반대로 바꾼다: 0은 1이 되고, 1은 0이 된다.
다른 말로:
0 1 operand1 ----- 1 0 ~operand1
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 과 같다는 것을 주목하는 것이 흠미롭다.
때로 부호있는 정수 식에서 부호 비트는 원치않는 놀라움을 일으킬 수 있다.
EXAMPLE BitMath Tutorial