Почему значение Single Epsilon составляет 1,401298E-45 - PullRequest
2 голосов
/ 06 марта 2020

Я не понимаю, почему значение Single epsilon равно 1.401298E-45, а не 1E-126, если внутренне имеет показатель -126 и мантиссу 1.

Ответы [ 2 ]

4 голосов
/ 06 марта 2020

Наименьшее положительное значение Single имеет показатель −126 с основанием два и двоичное значение и .00000000000000000000001 (2 −23 ), поэтому его значение равно 2 −149. , что приблизительно равно 1,4 • 10 −45 .

2 голосов
/ 06 марта 2020

Помните, что плавающие одинарной точности IEEE-754 хранятся в базовом 2-представлении. Вот как выглядит наименьшее возможное положительное денормальное значение для одинарной точности:

                  3  2          1         0
                  1 09876543 21098765432109876543210
                  S ---E8--- ----------F23----------
          Binary: 0 00000000 00000000000000000000001
             Hex: 0000 0001
       Precision: SP
            Sign: Positive
        Exponent: -126 (Stored: 0, Bias: 126)
       Hex-float: +0x1p-149

Другими словами, 126+23 = 149, поэтому его значение равно 2^-149, что примерно равно 1.4E-45.

...