【问题标题】:Interesting observation with BitConverter.GetBytes() in Compact Framework使用 Compact Framework 中的 BitConverter.GetBytes() 进行有趣的观察
【发布时间】:2012-03-14 12:53:14
【问题描述】:

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

有什么帮助吗?

谢谢, 呸呸呸

【问题讨论】:

  • 所以你发现浮点数中存在负零:-) :-)

标签: c# compact-framework bytearray bitconverter


【解决方案1】:

写在这里http://en.wikipedia.org/wiki/Signed_zero

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

你发现的是负零。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-09
    • 1970-01-01
    • 1970-01-01
    • 2011-04-08
    • 2013-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多