问题如下:
写下所有在单精度的 IEEE-754 中具有 1 个以上表示的实数。
现在,考虑到 +0 和 -0 不同,是否有任何数字具有此属性?
没有了。
IEEE754 表示是规范的,这意味着所有数字都只有一种表示(如果有的话),没有其他表示。
31 0
seeeeeeeemmmmmmmmmmmmmmmmmmmmmmm
映射到
(-1)^s * 2^(eeeeeeee - 127) * 1.mmmmmmmmmmmmmmmmmmmmmmm(二进制)
s
。相同实数的两个假定的不同表示必须具有相同的 值s
,因为只有该字段控制符号。1
中以偏置格式编码。eeeeeeee
相同实数的两个假定的不同表示必须具有相同的 值eeeeeeee
,因为只有该字段控制最高有效 1 位的位置。1
位被编码在尾数 ( mmmm...
) 中。1
同一实数的两个假定不同的表示必须具有相同的尾数值,因为只有该字段控制紧接在实数的最高有效位下方的 23 位。结论是矛盾的。相同实数的两个假定不同的表示必须具有相同的符号、指数和尾数;换句话说,它们必须是相同的。
该讨论忽略了所有特殊值,例如无穷大、NaN 和非规范化。