Floating point IEEE 754浮点数能否表示具有多位排列的完全相同的值?

Floating point IEEE 754浮点数能否表示具有多位排列的完全相同的值?,floating-point,ieee-754,ieee,Floating Point,Ieee 754,Ieee,IEEE 754浮点数能否表示具有多位排列的完全相同的值 例如: 128 exp 3==1024.0 256 exp 2==1024.0 1024 exp 0==1024.0 IEEE 754标准是否认为不同的比特安排在价值上是相等的比较,只要净值最终看起来是相同的? 我正在研究一些自定义的压缩算法,如果知道是否有多种方法来表示相同的值(为了增强压缩),这将非常有用。通常的二进制IEEE 754浮点类型没有您所指的那种冗余。数字总是标准化的,因此有效位在1.0和2.0之间(或者二进制中在1.0

IEEE 754浮点数能否表示具有多位排列的完全相同的值

例如:
128 exp 3==1024.0
256 exp 2==1024.0
1024 exp 0==1024.0

IEEE 754标准是否认为不同的比特安排在价值上是相等的比较,只要净值最终看起来是相同的? 我正在研究一些自定义的压缩算法,如果知道是否有多种方法来表示相同的值(为了增强压缩),这将非常有用。

通常的二进制IEEE 754浮点类型没有您所指的那种冗余。数字总是标准化的,因此有效位在
1.0
2.0
之间(或者二进制中在
1.0
10.0
之间)。它们确实有像正零和负零这样的东西,还有许多具有不同内部表示的
NaN


然而,较新的decimalieee754浮点类型确实有这种冗余:像
3.14
这样的数字可以用指数2表示为
314
<代码>3140指数为3<代码>31400指数为4;等等。

你如何看待0和-0?它们都表示零,因此在某种意义上具有相同的值,但它们具有不同的符号位。@PatriciaShanahan这是对相同值进行多位排列的另一个好例子。谢谢你指出这一点。看起来我需要注意二进制浮点数的NaN和0,以及十进制浮点数的其他冗余。注意1/+0是正无穷大,而1/-0是负无穷大。用一个替换另一个是可以通过“普通”算法和比较检测到的。在压缩的上下文中,您可能应该将-0和0视为不同的值,因为它们可能有不同的行为。@tmyklebu和PatriciaShanahan:谢谢您的区分。很高兴知道。我主要关心的是具有多种可能表示形式的非零有限数,因此将0和-0视为不同的值(以及具有不同行为的无穷大和NaN)应该可以。毕竟,问题在于完全相同的值的不同位排列,听起来0和-0不是完全相同的值,因为它们对标准操作的反应不同。