Рубрики

Представление с плавающей точкой — Основы

Есть посты по представлению формата с плавающей запятой. Цель этой статьи — дать краткое введение в формат с плавающей запятой.

Следующее описание объясняет терминологию и основные подробности двоичного представления IEEE 754 с плавающей запятой. Обсуждение ограничивается форматами одинарной и двойной точности.

Обычно действительное число в двоичном виде будет представлено в следующем формате,

I m I m-1 … I 2 I 1 I 0 .F 1 F 2 … F n F n-1

Где I m и F n будут равны 0 или 1 целой и дробной частей соответственно.

Конечное число также может быть представлено четырьмя целыми компонентами: знаком (знаками), основанием (b), значимым (m) и показателем степени (e). Тогда числовое значение числа оценивается как

(-1) s xmxb e ________ Где m <| b |

В зависимости от базы и количества битов, используемых для кодирования различных компонентов, стандарт IEEE 754 определяет пять основных форматов. Среди пяти форматов двоичные 32 и двоичные 64 представляют собой форматы одинарной и двойной точности соответственно, в которых основание равно 2.

Таблица — 1 точное представление

PrecisionBaseSignExponentSignificand
Single precision21823+1
Double precision211152+1

Формат одинарной точности:

Как упомянуто в таблице 1, формат с одинарной точностью имеет 23 бита для значимости и (1 представляет подразумеваемый бит, подробности приведены ниже), 8 бит для показателя степени и 1 бит для знака.

Например, рациональное число 9 ÷ 2 может быть преобразовано в формат с плавающей запятой одинарной точности следующим образом:

9 (10) ÷ 2 (10) = 4,5 (10) = 100,1 (2)

Результат считается нормализованным , если он представлен начальным 1 битом, т.е. 1.001 (2) x 2 2 . (Точно так же, когда число 0,000000001101 (2) x 2 3 нормализуется, оно появляется как 1,101 (2) x 2 -6 ). Если пропустить это подразумеваемое значение 1 слева, то мы получим мантиссу с плавающей точкой. Нормализованное число обеспечивает большую точность, чем соответствующее ненормализованное число. Подразумеваемый старший значащий бит может использоваться для представления еще более точного значения (23 + 1 = 24 бита), которое называется субнормальным представлением. Числа с плавающей запятой должны быть представлены в нормализованной форме .

Субнормальные числа попадают в категорию ненормализованных чисел. Субнормальное представление немного уменьшает диапазон экспоненты и не может быть нормализовано, так как это приведет к показателю степени, который не помещается в поле. Субнормальные числа менее точны, т. Е. Имеют меньше места для ненулевых битов в поле дроби, чем нормализованные числа. Действительно, точность падает с уменьшением размера субнормального числа. Тем не менее, субнормальное представление полезно при заполнении пробелов шкалы с плавающей запятой вблизи нуля.

Другими словами, приведенный выше результат может быть записан как (-1) 0 x 1,001 (2) x 2 2, что дает целочисленные компоненты как s = 0, b = 2, значимый (m) = 1,001, мантисса = 001 и е = 2. Соответствующее плавающее число одинарной точности может быть представлено в двоичном виде, как показано ниже,

Где поле экспоненты должно быть 2, но закодировано как 129 (127 + 2), называемое смещенным показателем . Поле экспоненты находится в простом двоичном формате, который также представляет отрицательные показатели с кодировкой (например, величина знака, дополнение 1, дополнение 2 и т. Д.). Смещенный показатель используется для представления отрицательных показателей. Смещенный показатель имеет преимущества перед другими отрицательными представлениями при выполнении побитового сравнения двух чисел с плавающей точкой на равенство.

Смещение (2 n-1 — 1), где n — это количество битов, используемых в показателе степени, добавляется к показателю степени (e), чтобы получить смещенный показатель степени ( E ). Таким образом, смещенный показатель ( E ) числа одинарной точности можно получить как

E = e + 127

Диапазон экспоненты в формате одинарной точности составляет от -128 до +127. Другие значения используются для специальных символов.

Примечание: когда мы распаковываем число с плавающей запятой, полученная экспонента является смещенной экспонентой. Вычитая 127 из смещенного показателя, мы можем извлечь несмещенный показатель.

Формат двойной точности:

Как упомянуто в Таблице 1, формат двойной точности имеет 52 бита для значимости и (1 представляет подразумеваемый бит), 11 бит для показателя степени и 1 бит для знака. Все остальные определения одинаковы для формата двойной точности, за исключением размера различных компонентов.

Точность:

Наименьшее изменение, которое может быть представлено в представлении с плавающей запятой, называется точностью. Дробная часть нормализованного числа с одинарной точностью имеет разрешение 23 бита (24 бита с подразумеваемым битом). Это соответствует log (10) (2 23 ) = 6,924 = 7 (характеристика логарифма) десятичных знаков точности. Аналогично, в случае чисел с двойной точностью точность составляет log (10) (2 52 ) = 15,654 = 16 десятичных цифр.

Точность:

Точность в представлении с плавающей запятой определяется количеством значащих и битных значений, тогда как диапазон ограничен показателем степени. Не все действительные числа могут быть точно представлены в формате с плавающей запятой. Для любого числа, которое не является числом с плавающей запятой, есть два варианта для аппроксимации с плавающей запятой, скажем, ближайшее число с плавающей запятой меньше x как x_ и ближайшее число с плавающей запятой больше x как x +. Операция округления выполняется для числа значащих битов в поле мантиссы на основе выбранного режима. Режим округления вниз вызывает x, установленный в x_, режим округления вверх вызывает x, установленный в x +, режим округления в сторону нуля приводит к тому, что x равен либо x_, либо x +, в зависимости от того, что находится между нулем и. Режим округления до ближайшего задает для x значение x_ или x +, в зависимости от того, что ближе к x. Обычно округление до ближайшего наиболее часто используемый режим. Близость представления с плавающей запятой к фактическому значению называется точностью .

Специальные битовые комбинации:

Стандарт определяет несколько специальных битовых комбинаций с плавающей запятой. Ноль не может иметь наиболее значимого 1 бита, поэтому не может быть нормализован. Скрытое представление битов требует специальной техники для хранения нуля. У нас будут две разные битовые комбинации +0 и -0 для одного и того же числового значения ноль. Для представления с плавающей запятой одинарной точности эти шаблоны приведены ниже,

0 00000000 00000000000000000000000 = +0

1 00000000 00000000000000000000000 = -0

Точно так же стандарт представляет два разных битовых шаблона для + INF и -INF. То же самое дано ниже,

Рекомендуемые посты:

Представление с плавающей точкой — Основы

0.00 (0%) 0 votes