• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

오버플로우문제

22.03.13 18:12 작성 조회수 111

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

강민철님의 프로필

강민철

2022.03.14

안녕하세요 :)

 

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

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

 

감사합니다.