22.2 비트 NOT 연산자 사용하기
이번에는 ~ 연산자를 사용해보겠습니다.
- ~x
bitwise_not_operator.c
#include <stdio.h> int main() { unsigned char num1 = 162; // 162: 1010 0010 unsigned char num2; num2 = ~num1; printf("%u\n", num2); // 93: 0101 1101: num1의 비트 값을 뒤집음 return 0; }
실행 결과
93
~ 연산자는 비트 NOT 연산자입니다. 간단하게 0은 1로 1은 0으로 바꾸며 "비트를 뒤집는다" 또는 "비트 반전"이라고 말합니다.
연산자 | 비트 | 결과 |
---|---|---|
~ | 0 | 1 |
1 | 0 |
1010 0010의 각 비트를 뒤집으면 0101 1101이 되고, 10진수로 93입니다. 즉, ~162는 93입니다.
1010 0010(162) _________ ~ 0101 1101(93)
참고 | unsigned char 자료형을 사용하는 이유는?
unsigned char는 부호 없는 정수이며 1바이트 크기입니다. 비트 연산으로 인해 부호 비트가 영향을 받지 않도록 부호 없는 자료형을 사용하였습니다.