1. 컴퓨터에서, 2진 부동소수점 표현
ㅇ 컴퓨터에서는, 실수를 2진 부동소수점으로 표현함
ㅇ 표현 내 필수요소 셋
- 부호 부분 (Sign)
- 가수 부분 (Mantissa/Fraction)
- 지수 부분 (Exponent)
2. IEEE 754 (1985, 2008, 2019)
ㅇ 실수 표기 방식, 실수 연산에 관한 규정, 오버플로우/언더플로우의 처리,
반올림에 관한 규정 등을 포함하는, 대단히 방대한 표준
ㅇ (표현방식)
- 표현 순서 : (부호) + (지수) + (가수)
. 32 비트 단정도 : (1 비트) + (8 비트) + (23 비트)
. 64 비트 배정도 : (1 비트) + (11 비트) + (52 비트)
ㅇ (표현 例) : 19.8(10)
- (2진수 표현) 10011.11001100110011001100110011001100110011001100...(2)
- (정규화된 부동소수점 수) 1.001111001100110011001100110011001100110011001100...(2) x 24
- (32 비트 배정도) 0 10000011 00111100110011001100110(2)
. (부호 1 비트 : 0) 양수 0, 음수 1
. (지수 8 비트 : 10000011) 기준값 127로부터 +4만큼 떨어진 값 : 131(10) = 10000011(2)
. (가수 23 비트 : 00111100110011001100110)
3. 단정도(단 정밀도) 및 배정도(배 정밀도) 표현법
※ 컴퓨터에서는,
- 정밀도(Precision) = 유효자리수(Significant Digit) 이라고도 함
ㅇ 단정도 (Single Precision, 단 정밀도) 표현법
- 비트 수 : 총 32 비트
. (부호부 1 비트, 지수부 8 비트, 가수부 23비트)
- 가수 부분의 표현
. 가수 부분 정규화 : 1/(기수) ≤ (가수) ≤ 1
. 가수 부분 첫째 비트 : 항상 1
.. 왜냐하면, 2진수 소수부 표현이 항상 1.… 임
- 수치 표현 例)
. 10진수 값 = (-1)부호부 x 2(지수부 10진수값 - 127) x (1.가수부 2진수값)
. 0 10000010 11100000000000000000000
.. = (-1)0 x 2130-127 x (1 + 1x0.5 + 1x0.25 + 1x0.125 + 0)
.. = + 1 x 8 x 1.875 = + 15
- 표현 범위
. 가장 큰 수 : ± (2 - 2-23) x 2127
.. 지수(exponent) = 01111111(2) = 127(10)
.. 가수(mantissa) = 1.111…1(2) = 2.0 x (1/2 + 1/22 + … + 1/223)
= 2.0 x (1 - 2-24)(10) = 2 - 2-23(10)
. 가장 작은 수 : ± 2-126
- 0,∞ 표현
. 0 에 대한 표현 : 지수 및 가수 부분의 모든 비트가 `0` 인 것 (+0 또는 -0)
. ∞에 대한 표현 : 지수 비트가 모두 `1`, 가수 비트가 모두 `0` (+∞ 또는 -∞)
ㅇ 배정도 (Double Precision, 배 정밀도) 표현법
- 비트 수 : 총 64 비트
. (부호부 1 비트, 지수부 11 비트, 가수부 52 비트)
- 수치 표현
. 위 단정도와 유사하나, 자리수가 더 많음
. 가수 부분은 1.ddd...d 처럼 표현됨
.. ddd...d 부분이 52 비트를 차지함
. 즉, 가수 부분의 유효자리수가 2진수 53자리(부호 포함)이므로,
.. 10진수 유효자리수는 253=1015.95으로 약 16자리가 됨
- 배 정밀도의 장점 및 단점
. 가수 부분의 자리수가 많으므로, 반올림 오차 등을 줄일 수 있으나,
. 단 정밀도에 비해 2배 이상의 메모리 및 계산시간이 필요함