Over flow (오버플로우)와 Under flow(언더플로우)

2022. 2. 8. 17:49IoT Embeded 강의

자료형 마다 정해진 메모리 크기가 있습니다. 메모리 크기에 따라 표현할 수 있는 데이터 수도 차이가 납니다. 그런데 만약 자료형이 표현할 수 있는 범위를 넘어서는 값을 입력하면 컴퓨터에는 잘못된 데이터가 입력됩니다.

1. Over flow 

자료형의 지정한 크기보다 큰 값을 입력했을 때 쓰레기값이 입력되는 현상을 말합니다. 

 

2. Under flow 

자료형의 지정한 크기보다 작은 값이 입력했을 때 쓰레기값이 입력되는 현상을 말합니다.

 

#include <stdio.h>

 

int main()

{

//over flow:  자료형의 지정한 크기보다 큰 값
short ok = 32767;
short flow = 32768;
printf("ok = %d\n", ok);
printf("flow = %d\n", flow);

//under flow : overflow 의 반대
short unok = -32768;
short unflow = -32769;
printf("unok = %d\n", unok);
printf("unflow = %d\n", unflow);

 

return 0;

}

short 자료형은 -32768~32767까지 정수를 표현할 수 있습니다. over flow 부분을 보시면 ok 변수는 32767, flow 변수는 32768을 입력했습니다. 그러면 ok 는 그대로 출력이 나오지만 flow는 한바퀴 돌아서 다시 -32768을 출력하게 됩니다. 이처럼 상한범위를 초과한 현상을 over flow라 합니다. 

 

반대로 under flow 의 부분을 보면 하한범위를 초과하게 되는 경우를 under flow 라고 합니다. 

'IoT Embeded 강의' 카테고리의 다른 글

C언어 기본 구조와 통합개발환경(IDE)  (0) 2022.02.09
변수, 자료형, 식별자, 전역/지역 변수  (0) 2022.02.09
반복문의 기본 문법  (0) 2022.02.08
조건문의 기본 문법  (0) 2022.02.07
C언어 에러 종류  (0) 2022.02.04