오버플로우 관련 학습 중에
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로 출력될까요?
안녕하세요 :)
%s 형식으로 출력하였기 때문입니다.
%d %hd 로 출력하면 오버플로우한 값을 볼 수 있습니다.
감사합니다.
댓글