하지만 잊지 마세요. 컴퓨터는 모든 숫자를 비트로 변환해서 저장하고 연산을 수행한다고 하였습니다. 정수 178을 비트 연산하려면 비트로 변환해서 사용하면 됩니다.
printf 출력에서 %d, 즉 10진수(decimal)로 표현하라고 하였으므로 비트 연산의 결과는 10진수 형태로 출력됩니다.
또 정수형 변수 c의 값 10에 보수 연산(~)을 수행한 결과를 확인해 보세요.
10진수 10을 2진수로 변환하면 1010이고, ~(1010)을 수행하면 0101이 되어 결과는 10진수 5가 출력될 것이라 예상됩니다. 그러나 결과를 보면 10진수 -11이 출력되었네요. 그 이유가 무엇인지 4.9절 ‘이박사와 함께 생각하는 C 언어’에서 다루겠습니다.
그림 4-13 | 비트 연산의 과정