С плавающей точкой: «Ведущий 1 является« неявным »в значении».- ... а? - PullRequest
17 голосов
/ 08 февраля 2011

Я изучаю представление чисел с плавающей точкой IEEE 754, и в моем учебнике написано:

Чтобы упаковать в биты еще больше битов, IEEE 754 делает неявным старший 1-битный нормализованный двоичный код. Следовательно, на самом деле число имеет длину 24 бита с одинарной точностью (подразумевается дробь 1 и 23 бита) и длину 53 бита с двойной точностью (1 + 52).

Я не понимаю, что означает здесь "неявный" ... в чем разница между явным битом и неявным битом? Разве не все числа имеют бит, независимо от их знака?

Ответы [ 3 ]

13 голосов
/ 08 февраля 2011

Да, для всех нормализованных чисел (кроме нулей) этот бит установлен в единицу (a) , поэтому они делают его неявным, чтобы не тратить место на его хранение.

В другихсловами, они полностью сохраняют этот бит и повторно используют его, чтобы его можно было использовать для повышения точности ваших чисел.

Имейте в виду, что это первый бит дроби, не первый бит двоичного шаблона.Первым битом двоичного шаблона является знак, за которым следуют несколько битов экспоненты, за которыми следует сама дробь.

Например, число с одинарной точностью (знак, экспонента, дробь):

<1>  <--8--->  <---------23---------->  <- bit widths
 s   eeeeeeee  fffffffffffffffffffffff

Если вы посмотрите, как вычисляется число, это:

(-1)<sup>sign</sup> x 1.fraction x 2<sup>exponent-bias</sup>

Таким образом, для вычисления этого значения используется дробная часть 1.fffff...fff (в двоичном виде).


(a) На самом деле существует класс чисел (денормализованные и нули), для которых это свойство не выполняется.Все эти числа имеют смещенную экспоненту, равную нулю, но подавляющее большинство чисел следует правилу.

6 голосов
/ 08 февраля 2011

Вот что они говорят.Первый ненулевой бит всегда будет равен 1. Поэтому нет необходимости, чтобы двоичное представление включало этот бит, поскольку вы знаете, что это такое.Так они и не делают.Они говорят вам, где эта первая 1, а затем дают биты после нее.Таким образом, есть 1, который явно не в двоичном представлении, местоположение которого неявно из-за того, что они сказали вам, где это было

1 голос
/ 19 января 2017

Также может быть полезно отметить, что мы имеем дело с двоичными представлениями числа.Причина того, что первая цифра нормализованного двоичного числа (то есть без начальных нулей) должна быть 1, состоит в том, что 1 - единственное ненулевое значение, доступное нам в этом представлении.Таким образом, то же самое не будет верно, скажем, для представлений с базовыми тремя.

...