#include <stdio.h>
int main(void)
{
int num;
printf("정수 입력:");
scanf("%d", &num);
num= ~num;
num=num+1;
printf("부호를 바꾼 결과: %d\n", num);
return 0;
}
2를 넣으면 -2가 나오고
-2를 넣으면 2가 나오는 그런 소스인데요.
여기서 제가 질문하고 싶은것은 num=num+1;를 왜 넣어야하는가 에 대한거에요.
예를들어
int num1=15
int num2=~num1
이라고할때 -16으로 산출되더라고요.
000000000 00000000 00000000 000011111->(반전시킨결과)11111111 111111111 11111111 11110000 ->(음수를 양수로) 000000000 00000000 00000000 00010000
왜 4비트로 나눠서 계산을 하는가.
그리고 왜 +1을 해야하는가가 궁금합니다.
저도 다시 한 번더 두번 더 세번 더 생각해보겠습니다.