언어 자료구조 알고리즘/디딤돌 C언어
[정답] 디딤돌 C언어 18. Overflow와 값 잘림 현상
언제나휴일
2016. 4. 29. 22:20
반응형
◈ 기본 연습
1. short 형식의 변수 s를 0x7FFF 값으로 초기화한 후 s 변수에 1을 더하면 10진수로 얼마인지 확인하는 코드를 작성하시오.
그리고 실행한 후 출력 결과의 이유를 설명하시오.
답:
//1. short 형식의 변수 s를 0x7FFF 값으로 초기화
//s 변수에 1을 더하면 10진수로 얼마인지 확인하는 코드를 작성하시오.
//그리고 실행한 후 출력 결과의 이유를 설명하시오.
#include <stdio.h>
int main(void)
{
short s = 0x7FFF;
printf("short s: %d\n",s);
s+=1;
printf("short s: %d\n",s);
return 0;
}
▷ 실행 결과
short s: 32767
short s: -32768
▷ 이유
short 형식의 크기는 2바이트이며 부호있는 정수를 표현하는 형식입니다.
0x7FFF는 이진수로 0111 1111 1111 1111 이며 short로 표현할 수 있는 가장 큰 정수입니다.
여기에 1을 더하면 이진수로 1000 0000 0000 0000 이며 short로 표현할 수 있는 가장 작은 정수입니다.
이러한 현상을 overflow라고 부릅니다.
반응형