부호를 바꿔주는 코드 작성했는데요!
풀큰
2024.01.23
질문 제목 : 부호 바꿔주는 코드 작성했는데요~질문 요약 :결과가 이상하게 나와요..질문 내용 :1을 넣으면 -1이나오고 19넣으면 -19나오는 이런 코드입니다 아주간단한..int num;
int result;
int a = 0;
num = 0; while (a 10) {
printf(입력한 숫자의 부호를 반대로 변환 합니다.\n 숫자를 입력 하십시오.\n);
scanf_s(%d, &num); result = (~num + 1); //2의 보수법 printf(%d\n, result);
a++;메인함수 내에 이렇게 작성했는데
결과가 작은 숫자를 넣었을때는 정상적으로 작동하는데
이렇게 이상한 숫자가 나와요!!
왜그런지 이유를 알고싶어요!!
-
세움 2024-01-23
아 되네요!! long long 형으로 선언하면 입 출력을 %lld로 해줘야 하는군요!! 감사합니다!
-
초코향 2024-01-23
scanf_s(\%d\
-
연초록 2024-01-23
%I64d
로 출력해야 됩니다. -
감추어왔던 2024-01-23
그런 것 같아서 long long 으로 바꿔서 표현할 수 있는 범위내의 숫자로도 해봤는데 이상한 결과가 나와서요...
-
후예 2024-01-23
int의 범위가 한정되있기 때문이죠..