본문 바로가기

CS

오버플로우와 언더플로우

각 자료형의 크기와 값의 범위

각 자료형은 크기와 범위가 다르지만 모두 범위의 한계가 존재하는데 오버플로우는 변수나 데이터 유형이 저장할 수 있는 최댓값을 초과하여  값이 증가하여 발생하는 오류이고 언더플로우는 반대로 변수나 데이터 유형이 표현할 수 있는 최솟값보다 작은 값으로 감소하여 발생하는 오류를 뜻한다.

 

예를 들어 4비트 정수는 0000부터 1111까지 총 16가지의 다른 수를 표현할 수 있는데 부호가 있는 4비트 정수는 최솟값 -8부터 최댓값 7까지로 나타낼 수 있다.

 

최댓값에 1을 더했을 경우

위 사진처럼 최댓값에 1을 더하면 올려진 수는 부호를 바꾸게 되어 결과적으로 최댓값을 초과한 수는 최솟값으로 루프되는 경우가 발생하게 된다. 

이러한 오버플로우와 언더플로우는 데이터가 특정 범위 내에 유지되도록 보장하는 데에 중요한 이슈가 되며 이를 고려하여 프로그램을 설계하고 구현하도록 노력해야한다.

'CS' 카테고리의 다른 글

값에 의한 호출 & 주소에 의한 호출 & 참조에 의한 호출  (0) 2023.10.30
비트연산자  (0) 2023.10.27
부동소수점의 의미와 표현  (0) 2023.10.25
이진법과 2의 보수  (0) 2023.10.25