Compact Framework中BitConverter.GetBytes()的有趣观察

时间:2012-03-14 12:53:15

标签: c# compact-framework bytearray bitconverter

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

1 个答案:

答案 0 :(得分:2)

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

  

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

你发现的是负零。