【问题标题】:Byte Array to Double in C# [closed]在 C# 中将字节数组加倍 [关闭]
【发布时间】:2015-12-04 14:41:55
【问题描述】:

我设置了一个程序,它使用 C# 将双精度值读入字节数组。 该值设置为 1.0,但我得到的字节数组结果是 63 和 128。

例如:

 Byte[] array; // gets result
      //result I get...
   the 0th value - 63
   the 1st value - 128

如何将这些值转换回双精度 (1.0)?

【问题讨论】:

  • 如何将双精度转换为字节数组?你的代码在哪里?
  • 我不知道是谁标记了你,也不知道为什么。但你的问题很公平。谢尔盖·朱可夫给了你正确答案:BitConverter.ToDouble()。注意:确保您正确生成了数组,例如与BitConverter.GetBytes()。你的数组肯定应该有两个以上的字节。
  • 其余为零。 1 是 3FF0 0000 0000 0000
  • 而且您似乎使用 float 而不是 double。 BitConverter.GetBytes 将给出 240 和 63 双倍(用零填充)

标签: c# double bytearray converter


【解决方案1】:
BitConverter.ToDouble(array, 0);

附:如果你使用类似的东西,它会起作用

BitConverter.GetBytes(1.0)

将 double 打包到数组中。我不明白第 0 值和第 1 值是什么意思?如果您的字节数组仅包含两个字节 - 它不是双字节。

【讨论】:

  • 我得到 1.62 E-319 作为转换后的值。
  • 那么存储在你的字节数组中的值不是双精度的。数组的大小是多少?
  • 它使用的不是双精度的浮点值。
猜你喜欢
  • 2015-10-08
  • 2021-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-14
  • 2023-04-02
相关资源
最近更新 更多