среда, 23 июля 2014 г.

Типы данных с плавающей точкой. Часть 2

По рекомендациям, заложенным в стандарт IEEE754 можно сконструировать дополнительные типы данных, часть из которых находит применение - fp24 (3 байта), fp16 (два байта), fp8 (один байт).

FP24 (s16e7)

бит знака, 7 бит порядка (смещение 63), 17 бит мантиссы (представляется 16 битами, 17 бит равен 1 для нормализованных и 0 для денормализованных чисел).

Emax = 63,  263 ≈ 9.223 1018Emin = -62,  2-62 ≈ 2.168 10-19
Макс. нормализованное число ≈ 1.845 1019 (1.11111...111 = 2 - 2-16 ≈ 2)
Мин. нормализованное число ≈ 2.168 10-19 (1.00000...000 * 2-62)
Макс. денормализовнное число ≈ 2.168 10-19 (0.1111...111 * 2-62 - для E=0 e = Emin = -62)
Мин. денормализованное число 2-74 ≈ 5.294 10-23 (0.0000..001 * 2-62 = 2-16 * 2-62)
Точность вычислений - 5 знаков ( log10(217) ≈ 5.118)


FP16 (s10e5)

бит знака, 5 бит порядка (смещение 15), 11 бит мантиссы (представляется 10 битами, 11 бит равен 1 для нормализованных и 0 для денормализованных чисел).

Emax = 15,  215 = 32768,  Emin -14,  2-14 = 6.103 10-5

Макс. нормализованное число = 65504 (1.11111...111 = 2 - 2-10)
Мин. нормализованное число = 6.103515625 * 10-5 (1.00000...000 * 2-14)
Макс. денормализовнное число ≈ 6.098 10-5 (0.1111...111 * 2-14 - для E=0 e = Emin = -14)
Мин. денормализованное число 2-24 ≈ 5.96 10-8
Точность вычислений - 3 знака ( log10(215) ≈ 3.311)


FP8 (s3e4, minifloat)

бит знака, 4 бита порядка (смещение 7), 4 бита мантиссы (представляется 3 битами, равен 1 для нормализованных и 0 для денормализованных чисел).


Emax 27 = 128, Emin 2-6 = 0.015625
Макс. нормализованное число 27 * 1.111 = 240
Мин. нормализованное число 2-6 * 1.000 = 0.015625
Макс. денормализовнное число 2-6 * 0.111 = 0.013671875
Мин. денормализованное число 2-6 * 0.001 = 0,001953125
Точность вычислений - 1 знак ( log10(24) ≈ 1.204)

Комментариев нет :

Отправить комментарий