我的MATLAB版本是:9.3.0.713579(R2017b)
根据IEEE 754-2008,在MATLAB中NaN的值不正确:
>> format hex
>> single(+NaN)
ans =
single
ffc00000
>> single(-NaN)
ans =
single
7fc00000
由于二进制值的MSB
表示单精度浮点数的符号,因此single(+NaN)
的值应为7fc00000
,而single(-NaN)
的值应为ffc00000
。
MATLAB错了吗?它是在最新版本中修复的吗?
MATLAB错了吗?
没有。
有multiple representations of NaN in IEEE-754。特别地,Sign位可以是0或1。程序可以使用它们中的任何一个,并且Matlab并不声称特别使用任何一个。 7fc00000
就是其中之一; ffc00000
是另一个。