Как определяется наименьшее положительное представимое значение с плавающей точкой? - PullRequest
0 голосов
/ 05 ноября 2018

Просто любопытно, как все работает. Значения с плавающей точкой max и epsilon равны

Single MaxValue = 3.40282347E+38F; // derived from 1.000.. * 2^128
Single Epsilon = 1.401298E-45F; // probably from substracting (1.00..01 - 1.00..0) * 2^-128 ?

Но наименьшее положительное значение должно быть около 1 / MaxValue или 1 * 2 ^ -127, что составляет ^ -39 или ^ -38 степени десятичной цифры. Итак, как можно с плавающей точкой хранить что-то ниже мощности -38 (до -45)?

1 Ответ

0 голосов
/ 05 ноября 2018

Для очень маленьких чисел IEEE 754 использует нормализованные значения, которые допускают меньшие интервалы.

В информатике денормализованные числа или денормализованные числа (теперь их часто называют субнормальными числами) заполняют пробел в потоке ниже нуля в арифметике с плавающей запятой. Любое ненулевое число с величиной меньше наименьшего нормального числа является «субнормальным».

В обычном значении с плавающей запятой в значении нет начальных нулей; вместо этого ведущие нули смещаются к показателю степени. Таким образом, 0,0123 будет записано как 1,23 × 10-2. Денормальные числа - это числа, в которых это представление приведет к показателю степени, который ниже минимального показателя (показатель обычно имеет ограниченный диапазон). Такие числа представлены начальными нулями в значимом.

Для получения дополнительной информации см. Страницу Википедии о ненормальных числах или на странице IEEE 754-1985 , где также перечислены номера, на которые вы наткнулись (10 ^ -45).

Положительные и отрицательные числа, наиболее близкие к нулю (представленные денормализованным значением со всеми 0 в поле экспоненты и двоичным значением 1 в поле дроби) ± 2 ^ −149 ≈ ± 1.40130 × 10 ^ −45

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...