IEEE 754 и номера машин - PullRequest
       62

IEEE 754 и номера машин

0 голосов
/ 08 декабря 2018

Я пытался обернуть голову вокруг номеров машин, таких как округление единиц измерения (u) и эпсилон (e) в сочетании со стандартом IEEE 754.В моем учебнике говорится о некоторых вещах, которые на самом деле не имеют смысла для меня.

округление единицы согласно моему учебнику:

  • для одинарной точности (для мантиссы 23 бита): u = 6e-8
  • для двойной точности (для мантиссы52 бита): u = 2e-16

Я пытался вывести формулу для этих результатов с двумя соотношениями:

  • мой учебник утверждает: «В двоичномарифметика с округлением: e = 2 * u "
    • e = 2 ^ -n, n - количество битов мантиссы

Эти объединенные результатытогда даст: u = 2 ^ - (n + 1), опять же, где n будет количеством битов мантиссы.Проверяя эту формулу с данными результатами u для разных значений точности:

для одиночного: u = 2 ^ - (23 + 1) = 5.96e-8, этот результат проверяется.для двойного: u = 2 ^ - (52 + 1) = 1.11e-16, этот результат не проверяется.

Может кто-нибудь помочь мне найти правильную формулу для округления единицы или указатьна некоторые ошибки, которые я делал?Вся помощь приветствуется.

1 Ответ

0 голосов
/ 09 декабря 2018

Похоже, что это ошибка в вашем учебнике.

Значения основных 32- и 64-разрядных двоичных форматов IEEE-754 - 24 и 53 бита соответственно. 1 Иногда указывается, что значения составляют 23 бита и 52 бита, но это ошибка.Это размеры основных полей для кодирования значений и символов, но полное 24-разрядное значение и кодируется 23 битами в основном поле значения и 1 битом в поле экспоненты.Аналогично, полное 53-битное значение и кодируется 52 битами в основном поле значения и 1 битом в поле экспоненты.(Старший бит полного значения происходит из поля экспоненты: если поле экспоненты равно нулю, старший бит значения и равен 0. Если поле экспоненты не равно ни нулю, ни всем единицам, бит начального значения и равен 1. Если поле экспонентыэто все единицы, объект с плавающей точкой - это специальное значение, либо бесконечность, либо NaN.)

Когда старший бит 24-разрядного значения и представляет значение 1, младший значащий бит представляет значение2 * +1007 * -23 .Это так называемый эпсилон.Когда действительное число округляется до ближайшего представимого значения с плавающей точкой, максимальная ошибка равна половине значения младшего значащего бита.(Потому что, если бы расстояние между двумя числами было больше половины, мы бы выбрали число в другом направлении, так как оно ближе.)

Для 53-разрядного значащего младший значащий бит представляетзначение 2 −52 относительно старшего бита, а максимальная ошибка при округлении до ближайшего равна половине.Таким образом, для начального бита 1 максимальная ошибка округления должна составлять 2 -53 , что составляет примерно 1,11 • 10 -16 .Если в вашей книге написано, что это 2 −16 , это неверно.

Сноска

1 «Значение» - предпочтительный термин.«Мантисса» - это старый термин для логической части дробной части.Значения линейные.Мантиссы логарифмические.

...