[질문]printf의 출력값이 이상합니다.

tokubetu111의 이미지

안녕하세요.

우선 코드부터 적습니다.
소스코드입니다.

#include
void main()
{
unsigned int num = (2*1024*1024*1024);

printf("num = %d", num);
}

출력보면 num이 -2147483648 입니다.
int 범위는 -2147483648 ~ 2147483647 이고
unsigned int는 0 ~ 4294967293 이므로, 제값이 출력되어야 하지 않습니까?
혹시 printf에서 2147483647이상의 값을 지원해주지 않아서 출력값이 마이너스 인건가요?
아시는분 답변 부탁드립니다

좋은하루되세요~

SoulreaveR의 이미지

(내용없음)

dhunter의 이미지

u Unsigned decimal integer

즉, printf("num= %u",num); 하시면 됩니다.
--
from bzImage
It's blue paper

from bzImage
It's blue paper