Максимальные и минимальные показатели в формате с плавающей запятой двойной точности

Согласно стандарту IEEE Std 754-2008, ширина поля экспоненты двойной точности binary64 Формат с плавающей запятой составляет 11 бит, что компенсируется смещением экспоненты, равным 1023. Стандарт также определяет, что максимальный показатель степени равен 1023, а минимальный - -1022. Почему нет максимального показателя:

2^10 + 2^9 + 2^8 + 2^7 + 2^6 + 2^5 + 2^4 + 2^3 + 2^2 + 2^1 + 2^0 - 1023 = 1024

И минимального показателя нет:

0 - 1023 = -1023

person lodhb    schedule 15.03.2013    source источник


Ответы (1)


Биты экспоненты имеют два зарезервированных значения: одно для кодирования 0 и субнормальных чисел, а второе для кодирования ∞ и NaN. В результате диапазон нормальных показателей на два меньше, чем можно было бы ожидать. См. §3.4 стандарта IEEE-754 (w - количество бит в экспоненте - 11 в случае binary64):

Диапазон смещенной экспоненты E кодирования должен включать:

- Каждое целое число от 1 до 2 w - 2 включительно для кодирования нормальных чисел

- Зарезервированное значение 0 для кодирования ± 0 и субнормальных чисел

- Зарезервированное значение 2 w - 1 для кодирования ± ∞ и NaN.

person Mankarse    schedule 15.03.2013
comment
Так является ли показатель 1024 зарезервированным для ± ∞ и NaN, а показатель -1023 - для ± 0 и субнормальных чисел? Если да, то определяется ли показатель -1023 как 0? - person lodhb; 16.03.2013
comment
Между прочим, вы имеете в виду раздел §3.4 (в официальном документе IEEE). - person lodhb; 16.03.2013
comment
Так есть ли у вас когда-либо минимальная ширина экспоненты? Имеет ли смысл иметь показатель степени равный 0 битам? 1 бит? 2 бита? - person Veridian; 14.04.2015