我正在尝试使用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

所发现的是负零。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top