본문 바로가기
CS 기초/Computer Architecture

소수(십진수)를 IEEE 754 (32bit 단정도) 부동 소수점 방식으로 나타내기.

by woohyeon 2020. 2. 25.
반응형

프로그래밍에서 많이 사용되는 부동 소수점이 표현되는 방식에 대해 알아보겠습니다.

우선 부동 소수점은 부호부, 지수부, 가수부로 나뉩니다.

32비트
부호부: 최상위 1비트
지수부: 8비트
가수부: 23비트

출처: 위키피디아

 

-118.625라는 수를 부동소수점 방식으로 변환해보겠습니다.

1. 먼저 음수이므로 최상위 비트를 1로 설정합니다. (양수일 경우 0)


여기선 가독성을 위해 4bit 마다 공백을 표시하겠습니다.

2. 절댓값 118.625를 이진법으로 변환합니다. (소수점 이진법으로 표기하는 법)
118.625 -> 1110 110.101 


3. 소수점을 왼쪽으로 이동시켜 정수부가 한자리가 되도록 합니다.
1110 110.101 -> 1.1101 1010 1


4. 3번에서 이동시킨 자릿수(6)만큼을 2의 지수로 사용하여 곱해주고, 이 수를 정규화된 부동 소수점이라고 합니다.
  1. 1101 1010 1 x 2^6


5. 4번의 소수점 아래 부분(1101 1010 1)이 가수부(23bit)가 되도록 나머지 비트를 0으로 채웁니다.
 1101 1010 1000 0000 0000 000 x 2^6


6. 위 23비트를 가수부로 설정합니다.  


7. 32bit IEEE 754 형식엔 "Bias" 라는 고정된 값이 있습니다. 이는 127이며, bias를 2의 지수인 6에 더하고 이진수로 변환합니다.
 6 + 127 = 133 -> 1000 0101  (8bit 지수부)


8. 위 8비트를 지수부로 설정합니다.

∴  -118.625 = 1 10000101 11011010 10000000 0000000




댓글