与Compact Framework中的BitConverter.getBytes()有趣的观察
-
13-12-2019 - |
题
我正在尝试使用BitConverter.getBytes(...)方法将浮动值转换为字节数组。我遇到了一个有趣的问题。考虑以下代码 -
float f = 0.0;
byte[] bytes = BitConverter.GetBytes(f);
for (int j = 0; j < bytes.Length; j++)
{
Trace.Write(bytes [j] + " ");
}
.
上面的转换返回一个我在控制台上打印的4个字节数组。但是,我注意到有时4个字节的输出是{0 0 0 128}而不是{0 0 0 0}。
任何帮助?
谢谢, omky
解决方案
在这里写在这里 http://en.wikipedia.org/wiki/signed_zero
浮点算法的IEEE 754标准(目前由支持浮点数的大多数计算机和编程语言)需要+0和-0
所发现的是负零。
不隶属于 StackOverflow