Почему формат двойной точности просто не удваивает бит в каждом поле, а не только удваивает бит бит? Кроме того, что такое скрытый бит и почему он используется?Формат с плавающей точкой с одиночной точностью IEEE
ответ
Ваша оценка не совсем верно:
- IEEE754 16-бит с плавающей точкой: 1 бит знака, 5 бит экспоненты, 10 (+1) мантиссы бит, ехр ∈ [-14, 15]
- IEEE754 32-бит float: 1 знаковый бит, 8 экспоненциальных битов, 23 (+1) значащих битов, exp ∈ [-126, 127]
- IEEE754 64-битный поплавок: 1 знаковый бит, 11 экспоненциальных битов, 52 (+1) значащие биты, exp ∈ [-1022, 1023]
- IEEE754 80-бит float: 1 бит знака, 15 экспоненциальных бит, 64 (+0) значащие биты, exp ∈ [-16382, 16383]
Так что никто не получает удвоения. Более высокая точность, по-видимому, более полезна, чем более широкий диапазон. Напомним, что диапазон представляемых значений увеличивается ... экспоненциально по размеру экспоненты.
1) Есть ли действительно 80-битный поплавок IEEE754? Существуют [двоичные и десятичные] (http://en.wikipedia.org/wiki/IEEE_floating_point#Basic_and_interchange_formats), хотя я не знаю, каких реализаций использовать десятичные. – chux
@chux IEEE754 не определяет 80-битный формат с плавающей запятой. Он указывает только бинарные32, двоичные, двоичные128, десятичные и десятичные128. Однако он явно позволяет реализациям IEEE754 расширять стандарт с расширенными и расширяемыми типами. –
В спецификации нет скрытых бит. И вам действительно нужны два знака? – Deduplicator
@Deduplicator Он означает неявный 1 бит, который предполагается, когда смещенный показатель находится в диапазоне [-127, 126]. То есть 2^(e-bias) * 1.mmmmmmmmm, где 1 - скрытый бит. –
Во-первых, нет необходимости удваивать бит знака. В течение секунд показатель степени в двоичном формате 32 для всех целей и задач между -126 и +127, что позволяет принимать значения, варьирующие в пределах до 10^38. Удвоение ширины поля экспоненты позволило бы возвести в квадрат величину экспоненты; Значение 10^(38^2) = 10^1444 настолько велико, что не имеет смысла, и эти верхние экспоненциальные биты никогда не будут использоваться на практике. Вот почему меньшее количество новых бит дано экспоненту и больше для мантиссы, где они более необходимы. –