unsigned int
글쓴이: 하하 / 작성시간: 금, 2003/11/14 - 11:21오전
main() { unsigned int val; val = 0x89ABCDEF; printf(" %d \n", val); }
위 코드에서 원하는 어떤 숫자(아주 큰 10진수)가 안나오고
-1985229329
이런 수가 나오는 이유는 무엇인가요?
sizeof(unsigned int) 하면 4byte가 찍힘니다.
이말은 최상위. 부호 비트까지 수로 채워 넣을 거다. 그러니
0xffffffff 의 숫자까지 표현할 수 있다가 아닌가요?
왜.. 값을 표현 못하겠다의 의미 같은 -(음수부호)가 붙어서
오는 건가요?... 암만 생각해도.. 이유를 모르겠습니다.
Forums:
unsigned int 를 출력하시려면, %d 가 아니라, %u 를 하셔
unsigned int 를 출력하시려면, %d 가 아니라, %u 를 하셔야 하지 않을까요?
0x89ABCDEF 의 2의 보수를 취하면, -1985229329 입니다.
Re: unsigned int
printf(" %u \n", val);
%d 대신 %u를 사용해 보세요.-----
http://monpetit.posterous.com/
http://monpetit.tistory.com/
댓글 달기