본문 바로가기
C

[C언어] 오버플로우, 언더플로우 - 코드 119

by 박사과정 모닝 2023. 1. 10.
반응형
오버플로우

언더플로우

 

 

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이 출력됨
  • 언더플로우 해결 방법:  표현하고자 하는 범위의 숫자를 포함하는 자료형을 선택하여 사용해야 함
반응형