지금까지 특정한 숫자가 1의 보수와 2의 보수를 거쳐 음수로 표현되고 뺄셈이 수행되는 과정을 알아보았습니다.
이제 앞의 예제 코드에서 ~10의 결과가 -11인 것도 이해할 수 있을 것입니다. 특정 숫자 a를 음수로 표현하려면 1의 보수를 취한 값에 1을 더하면 되므로 (~a) + 1을 하면 됩니다. 즉, -a = = (~a) + 1이라고 할 수 있습니다. 그러므로 (~a) = = -a -1이라고도 표현할 수 있습니다. (~10) = = -10 - 1이므로 -11이 나오는 것입니다.
complement.c
#include <stdio.h> main() { int c = 10; printf("%d\n", ~c); }
실행 결과
-11