열혈C에 있는 연습문제 中... 질문드립니다.
봄시내
p.103보면 문제1]이 있는데요.입력받은 음의 정수값을 양의 정수로 바꿔서 출력하는 프로그램 작성하는 문제입니다.
(반드시 비트 단위 연산자를 사용해서...ㅎ)저는 한두번의 시행착오에----------------------------------------------------------------------------------------
#include stdio.hint main(void)
{
int a; printf(음의 정수를 입력하시오. \n);
scanf(%d, &a);
a=~a+1;
printf(출력 결과:%d \n, a);
return 0;
}
-----------------------------------------------------------------------------이렇게 소스를 작성했는데요,
(그래도 실행해보면 되는 것 같습니다..)근데 답지를 보면
------------------------------------------------------------------
#include stdio.hint main(void)
{
int a; printf(음의 정수를 입력하시오. \n);
scanf(%d, &a);
a=~a;
a=a+1;
printf(출력 결과:%d \n, a);
return 0;
}
------------------------------------------------------------------
이렇게 짜여져 있는데,,제가 작성한 소스가 맞는지 모르겠네요...실행해서 입력해보면 맞는것 같기도 한데..
(그리고 꼭 그 답과 같을 필요는 없겠죠.?)그리고 위에있는 두 소스를 컴파일하고 실행시키고
-54387563485 와같이 큰 숫자를 입력하면54387563485와 같이 같은 숫자가 안나오더군요.. 두 개다..숫자가 너무 커서 그런가요.???
int형 변수에 한계가 있다고 할까나..?? 그런것 때문인지도...C언어가 첨이라 궁금한게 많네요..지금까지 긴 질문글 읽어주시느라 고생하셨습니다..ㅋㄷ
-
YourWay
답지가 a = ~a; 던가요?? a = -a; 아니던가요???
걍 -a 하세요 쉽게 가야죠 ㅋ