【问题标题】:byte array to double conversion in c#字节数组到c#中的双重转换
【发布时间】:2010-08-06 07:11:53
【问题描述】:

我有一个三个字节的数组,我想使用 c# 将数组转换为双精度。请指导我。

【问题讨论】:

  • 提供您的代码将是获得答案的良好开端
  • 你用的是什么字节序?

标签: c# .net


【解决方案1】:

嗯,这取决于您希望转换做什么。

您可以使用 BitConverter.ToDouble8 个字节(以正确的格式)转换为 double - 但只有 三个 个字节有点奇怪 - 毕竟,double 通常有 64 位信息。这三个字节如何表示一个数字?基本上是什么格式?当你弄清楚这一点后,剩下的就很容易了。

【讨论】:

    【解决方案2】:

    嗯,双精度是一个 8 字节的数组,所以 3 字节你不会有所有可能的值。

    做你想做的事:

    var myBytes[] = {0,0,0,0,0,1,1,2}; //assume you pad your array with enough zeros to make it 8 bytes.
    var myDouble = BitConverter.ToDouble(myBytes,0);
    

    【讨论】:

    • 我已经尝试过这种方法,但它会导致异常。我不知道为什么。
    • 你的数据是否是正确的浮点格式(我相信C#使用标准的IEEE浮点格式)
    【解决方案3】:

    取决于字节中存储的确切内容,但您可以只用 5 个字节填充数组,所有字节都包含 0,然后使用 BitConverter.ToDouble

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-21
      • 2011-06-12
      • 1970-01-01
      • 2013-02-25
      • 2014-02-22
      • 2013-03-10
      • 1970-01-01
      相关资源
      最近更新 更多