분류 | 게시판 |
베스트 |
|
유머 |
|
이야기 |
|
이슈 |
|
생활 |
|
취미 |
|
학술 |
|
방송연예 |
|
방송프로그램 |
|
디지털 |
|
스포츠 |
|
야구팀 |
|
게임1 |
|
게임2 |
|
기타 |
|
운영 |
|
임시게시판 |
|
#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을 해야하는가가 궁금합니다.
저도 다시 한 번더 두번 더 세번 더 생각해보겠습니다.
죄송합니다. 댓글 작성은 회원만 가능합니다.