실수의 표현정수를 표현하는 방법을 응용해서 실수를 표현해보자. 16비트를 사용한다고 가정하면 앞의 8비트는 정수 부분을, 나머지 8비트는 소수 부분을 위해서 할당하면 될 것이다. 예를 들어 5.34(10)의 경우에는 101.010101110...(2)의 무한 소수 형태의 이진수가 되는데, 앞서 말한 방식으로는 16비트의 다음 숫자가 된다.
여기서 지수(exponent)를 위해 3비트를 할당했기 때문에 3 초과 표현(excess 3 representation)을 사용한다. 즉, 정규형으로 표현된 1.0101110*2^(-2)를 표현하기 위해서는 지수가 -2이기 때문에 3을 초과시켜서 1을 적는다(-2+3=1).
초과 표현은 왜 사용하는 것일까? 아래의 두 수는 정규형으로 표현된 수이다. 두 숫자 중 어떤 수가 큰 수인지 어떻게 알 수 있을까?
이렇게 하면 원래는 1.010*2^(-2)까지만 표현 가능했던 비트가 1.0101*2^(-2)까지 표현할 수 있게 됨으로써 좀 더 정확한 숫자를 나타낼 수 있게 된다.
이 내용을 정리하면 8비트 부동 소수점 표기법에서는 다음 범위 만을 커버할 수 있다는 결론이 난다.
|