0.5를 IEEE-754의 단일 정밀도 방식으로 표현할 경우 가수 부분 23비트는?
IEEE-754 표준
부동 소수점 형식은 오랫동안 컴퓨터 설계자들에게 풀어야 할 과제였다. 그러다 미국의 전기전자공학괴가 부동 소수점 형식에 대한 표준안인 IEEE-754를 개발하게 되었고, 이를 대부분의 컴퓨터에서 사용하고 있다. IEEE-754 표준안은 부동 소수점 연산의 소프트웨어, 하드웨어 구현 모두에 대해 유효할 뿐ㅁㄴ 아니라 발생할 수 있는 라운딩, 오버플로우, 언더플로우 및 여러 가지 예외 사항도 다루고 있다. IEEE-754 표준안은 실수를 위해 단일 정밀도(C언어에서 float)와 2배 정밀도(C언어에서 double)라는 두 가지 형식을 제공하며, 이는 그림과 같이 구성되어 있다.
단일 정밀도(C언어에서 float)
부호, 지수, 가수
1bit, 8bits, 23bits = 32bits
2배 정밀도(C언어에서 double)
부호, 지수, 가수
1bit, 11bits, 52bits = 64bits
IEEE-754 표준안은 정규화 표현을 사용하며, 앞 절에서 소개한 대로 2진 소수점 왼쪽 1비트를 잠복 비트로 사용한다. 따라서 단일 정밀도 방식의 경우 실숫값 V는 다음과 같다.
부동 소수점은 하나의 실수가 무한한 방법으로 표현된다는 문제점이 있다. 즉, 하나의 실수에 대한 고유한 표현이 없다. 예를 들어, 실수 0.0613은 다음과 같이 수많은 방법으로 나타낼 수 있다.
0.00613 x 101
0.0613 x 100
0.613 x 10-1
6.13 x 10-2
61.3 x 10-3
이와 같은 부동 소수점 표현을 비정규화 수denormalized number라고 한다. 어떤 수에 대해 고유한 표현 방식이 없다면 컴퓨터가 수를 처리하는 데 큰 혼란이 생긴다. 따라서 실수에 대한 유일한 부동 소수점 표현을 위해 특정한 제약을 둘 필요가 있다. 이는 다양한 방법으로 할 수 있지만 일반적으로 소수점 왼쪽에 있는 수를 0이 아닌 한 자리 수로 제한한다.