Можно ли нормализовать систему с плавающей запятой с 2 или 1 дополнениями мантисса?
Да, возможны любые кодировки. Было опробовано множество кодировок с плавающей запятой - может быть, даже с мантиссой дополнений 2 или 1. Тем не менее, наиболее популярные форматы с плавающей запятой содержат знак, беззнаковую мантиссину и показатель степени.
Чтобы прояснить некоторые (недоразумения):
нормализованная мантисса — это дробная мантисса, в которой старший бит, равный 1/2, всегда равен 1
Примечание: лучше использовать значащее/значащее, чем мантиссу.
Форматы с плавающей запятой, такие как binary64, делают различие между значением мантиссы и это кодирование.
Значение мантиссы m
составляет 53 бита - обычно считается двоичным числом как B.bbb...bbb. Нижние 52 кодируются напрямую. Выводится наиболее значимый B
. Если смещенный показатель степени не равен 0, старший бит равен 1 (нормальные числа). В противном случае это 0 (числа субнормальные).
Старший бит значения не всегда равен 1. Старший бит закодированного 52-битного значения также не всегда равен 1.
Поскольку в обычных числах старший бит всегда равен 1, этот бит не кодируется. Обычно считается, что он имеет значение 1, а не 1/2. Однако можно было бы использовать 1/2, а затем также необходимо было бы настроить множество других констант, описывающих формат.
И сделано это для того, чтобы избежать повторного представления одного и того же номера в системе.
Да, но косвенно. Цель хорошего формата с плавающей запятой состоит в том, чтобы закодировать множество различных значений с минимальным пространством. Любые повторные представления уменьшат эту эффективность. Отсутствие или небольшое количество повторяющихся представлений является результатом достижения цели эффективности использования пространства.
Но что произойдет, если в мантиссе используется система дополнения до 2 или дополнения до 1. В этом случае, если число отрицательное, то установка этого бита в 1 приведет к тому, что этот бит будет иметь нулевое значение, из-за чего он не будет выполнять свою задачу.
Это любопытно, так как «мантисса», сигнатура беззнаковая. Тем не менее, давайте объединим знаковый бит и сигниканд вместе как знаковую величину «мантисса», как sB.bbb...bbb
. Изменение этого на какое-то 54-битное дополнение до 2 означает, что производное B
равно 1 для положительных чисел и 0 для отрицательных. Да, форсирование B
до 1 - плохой выбор дизайна, и это не требуется.
Другим решением было бы заставить его быть 0 в случае, если число отрицательное, но я полагаю, что физическая реализация этого может быть сложной.
Да, это будет 0 в случае отрицательных чисел для обычных чисел. Нет слишком сложных проблем, препятствующих физической реализации - на самом деле это довольно тривиально. Тем не менее, нет никакой доказанной ценности для этого альтернативного подхода. Если бы у вас была куча денег для реализации следующего процессора с отличными возможностями работы с плавающей запятой, вы бы сделали ставку на распространенные форматы с плавающей запятой со знаком или попытались бы использовать формат с дополнением до 2?
... существует ли система с нормализованной мантиссой дополнения до 2 или 1?
Насколько не изменяет память, это было реализовано. Тем не менее, по второстепенным причинам, распространенные сегодня форматы с плавающей запятой не используют мантиссу дополнения до 2. Давление дарвиновской технологии привело к доминированию в отрасли вычислений с плавающей запятой со знаком. Ключевые события привели к выпуску IEEE 754-1985. В нем подробно описаны многие аспекты работы с плавающей запятой, но он также был написан, чтобы отразить цели ведущих производителей оборудования в то время. Мантисса дополнения до 2 или 1 наряду со многими другими форматами с плавающей запятой ">пропустил лодку.
person
chux - Reinstate Monica
schedule
21.12.2017