Могут ли числа с плавающей точкой 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; и так далее.