В принципе, для такого маленького представления табличка может действительно оказаться эффективнее. Но принципиально - нет, здесь нет необходимости ни в какой табличке, все построено строго по логике обычных флоатов и может быть реализовано чисто схемотехнически, логично.
При этом мантисса у нас почти всегда нормализованная (т.е. старший бит "1"), поэтому реально мантисса 2 бита, из которых хранится младший, а старший подразумевается. Подразумевается он всегда 1, кроме наименьшего значения показателя - тогда мантисса денормализованная, и старший бит подразумевается 0. Т.е. мантисса может принимать значения 0.75, 0.5, 0.25, 0 (последние два - только в случае денормализации). Или, эквивалентно, можно считать это значениями 3,2,1,0, изменив соответственно интерпретацию показателя.
В итоге имеем (для положительных чисел): - показатель 00: денормализованная мантисса, коэффициент 2, значения мантиссы 0.0 и 0.25 дают нам числа 0.0 и 0.5 - показатель 01: нормализованная мантисса, коэффициент 2, значения мантиссы 0.5 и 0.75 дают нам числа 1.0 и 1.5 - показатель 10: нормализованная мантисса, коэффициент 4, значения мантиссы 0.5 и 0.75 дают нам числа 2.0 и 3.0 - показатель 11: нормализованная мантисса, коэффициент 8, значения мантиссы 0.5 и 0.75 дают нам числа 4.0 и 6.0
Если интерпретировать мантиссу как 0-3 вместо 0.0 - 0.75, то показатели надо, соответственно, интерпретировать как 0.5 - 2 вместо 2 - 8.
no subject
Date: 2025-08-09 12:20 pm (UTC)Имеем:
- 1 бит знака
- 2 бита показателя
- 1 бит мантиссы.
При этом мантисса у нас почти всегда нормализованная (т.е. старший бит "1"), поэтому реально мантисса 2 бита, из которых хранится младший, а старший подразумевается. Подразумевается он всегда 1, кроме наименьшего значения показателя - тогда мантисса денормализованная, и старший бит подразумевается 0. Т.е. мантисса может принимать значения 0.75, 0.5, 0.25, 0 (последние два - только в случае денормализации). Или, эквивалентно, можно считать это значениями 3,2,1,0, изменив соответственно интерпретацию показателя.
В итоге имеем (для положительных чисел):
- показатель 00: денормализованная мантисса, коэффициент 2, значения мантиссы 0.0 и 0.25 дают нам числа 0.0 и 0.5
- показатель 01: нормализованная мантисса, коэффициент 2, значения мантиссы 0.5 и 0.75 дают нам числа 1.0 и 1.5
- показатель 10: нормализованная мантисса, коэффициент 4, значения мантиссы 0.5 и 0.75 дают нам числа 2.0 и 3.0
- показатель 11: нормализованная мантисса, коэффициент 8, значения мантиссы 0.5 и 0.75 дают нам числа 4.0 и 6.0
Если интерпретировать мантиссу как 0-3 вместо 0.0 - 0.75, то показатели надо, соответственно, интерпретировать как 0.5 - 2 вместо 2 - 8.