인프런 커뮤니티 질문&답변

이기찬님의 프로필 이미지
이기찬

작성한 질문수

홍정모의 따라하며 배우는 C언어

오버플로우문제

작성

·

168

0

오버플로우 관련 학습 중에

int main() {

 

 

//unsigned int u_max = UINT_MAX + 1;

signed int I_max = UINT_MAX + 1;

 

// i to binary represenatation

char buffer[33];

_itoa(I_max, buffer, 2);

 

// print decimal and binary

printf("decimal : %s\n", I_max);

printf("binary : %s\n", buffer);

 

return 0;

 

를 실행해서 출력하게 되면 

decimal =  null

binary = 0

이 나오게 됩니다.

 

signed int의 경우에는 왜 unsigned int와는 다르게 null로 출력될까요?

 

 

답변 1

0

안녕하세요 :)

 

%s 형식으로 출력하였기 때문입니다.

%d %hd 로 출력하면 오버플로우한 값을 볼 수 있습니다.

 

감사합니다.

이기찬님의 프로필 이미지
이기찬

작성한 질문수

질문하기