Могут ли числа с плавающей точкой IEEE 754 представлять одно и то же значение с множеством битов?

Могут ли числа с плавающей точкой IEEE 754 представлять одно и то же значение с множеством битов?

Например:
128 опыта 3 == 1024,0
256 exp 2 == 1024.0
1024 exp 0 == 1024.0

Считает ли стандарт IEEE 754 различные битовые комбинации равными по значению при сравнении, если чистое значение в конечном итоге оказывается одинаковым?

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

1 ответ

Решение

Обычные двоичные типы IEEE 754 с плавающей точкой не имеют того типа избыточности, на который вы ссылаетесь. Числа всегда нормированы так, что значение между 1.0 а также 2.0 (или между 1.0 а также 10.0 в двоичном виде). У них есть такие вещи, как положительный ноль и отрицательный ноль, и многие NaN которые имеют разные внутренние представления.

Однако более новые десятичные типы с плавающей точкой IEEE 754 имеют такую ​​избыточность: 3.14 может быть представлен как 314 с показателем 2; 3140 с показателем 3; 31400 с показателем 4; и так далее.

Другие вопросы по тегам