반응형
오버플로우
1. 오버플로우(Overflow)
- 정의: 변수에 선언한 자료형이 정상적으로 처리하는 유효 범위의 최댓값보다 더 큰 값이 입력되어, 유효 범위의 최솟값으로 실행 결과가 출력되는 현상
- 오버플로우가 발생하면 자료형의 유효 범위의 최솟값부터 다시 시작하여 연산됨
- 오버플로우가 발생하더라도 별도의 에러 메세지가 표시되지 않고, 실행 결과도 정상적으로 실행된 것 처럼 보이기 때문에 주의해야 함
- 예를 들어, signed short 형의 유효 범위는 -32,768 ~ +32,767 이기 때문에 signed short형 변수에 32767+8을 입력하면 최솟값인 -32,768부터 다시 시작하여 -32,761이 출력됨
- 오버플로우 해결 방법: 표현하고자 하는 범위의 숫자를 포함하는 자료형을 선택하여 사용해야 함
2. 언더플로우(Underflow)
- 정의: 변수에 선언한 자료형이 정상적으로 처리하는 유효 범위의 최솟값보다 더 작은 값이 입력되어, 유효 범위의 최댓값으로 실행 결과가 출력되는 현상
- 언더플로우가 발생하면 자료형의 유효 범위의 최댓값부터 다시 시작하여 연산됨
- 언더플로우가 발생하더라도 별도의 에러 메세지가 표시되지 않고, 실행 결과도 정상적으로 실행된 것 처럼 보이기 때문에 주의해야 함
- 예를 들어, unsigned short 형의 유효 범위는 0 ~ 65,535 이기 때문에 unsigned short형 변수에 -3을 입력하면 최댓값인 65,535부터 다시 시작하여 65,533이 출력됨
- 언더플로우 해결 방법: 표현하고자 하는 범위의 숫자를 포함하는 자료형을 선택하여 사용해야 함
반응형
'C' 카테고리의 다른 글
[C언어] 부동 소수점, 고정 소수점 - 코드 119 (0) | 2023.01.10 |
---|---|
[C언어] 스택 메모리 구조, LIFO, FIFO - 코드 119 (0) | 2023.01.10 |
[C언어] 정수형 변수 - 코드 119 (0) | 2022.12.17 |
[C언어] 변수 선언과 초기화 - 코딩119 (2) | 2022.12.17 |
[C언어] 자료형 -코드 119 (0) | 2022.12.17 |