1

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

有什么帮助吗?

谢谢, 奥姆基

4

1 回答 1

2

如此处所写http://en.wikipedia.org/wiki/Signed_zero

浮点算术的 IEEE 754 标准(目前由支持浮点数的大多数计算机和编程语言使用)需要 +0 和 -0

你发现的是负零。

于 2012-03-14T12:57:53.590 回答