오버플로우
컴퓨터는 유한한 메모리(RAM)를 가지기 때문에 유한한 크키의 비트만 저장할 수 있다. 따라서 그 유한한 비트 값을 넘는 수는 저장할 수 없다. 이러한 하드웨어의 한계로 인하여 발생하는 문제를 오버플로우라 한다.
대표적인 오버플로우 문제 :
- 부동 소수점 부정확성
부동 소수점(32bits)은 sign을 나타내는 부분s
(1bit) + 지수부분(8bits)e
+ 소수부분(23bits)f
로 나뉘고 부동소수점의 수는(-1)**s * f * 2**e
로 나타낸다. 양수의 지수가 지수 범위보다 클 경우 음수로 표현되는 오버플로우가 발생한다. - 정수 오버플로우
만일 3bits만 저장할 수 있는 컴퓨터라면 111 다음에 1000을 나타내야하는데 000을 나타내는 경우를 정수 오버플로우라 한다.
해결방안:
언어별 형식연산자의 범위를 확인하며 사용한다
This post is licensed under CC BY 4.0 by the author.
Comments powered by Disqus.