언어 자료구조 알고리즘/디딤돌 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라고 부릅니다.
반응형