【发布时间】:2015-12-08 19:30:57
【问题描述】:
我正在 C# 中开展一个项目,我必须使用 字节数组 提取数据一个名为 ASTERIX 的开源协议。修改数据后,我想对它们进行编码并再次基于协议将其放入 字节数组 中。我的问题是,在某些时候我需要将双精度转换为字节数组。根据协议,这个字节数组应该是 3 个字节(3 个八位字节),而我在转换后得到的字节数组是 8 个字节。是否有任何内置函数可用于将双精度转换为 3 字节字节数组? 另外,对于我拥有的 double 值,3 字节绝对足够了。如果有帮助,我这里有一些代码:
double val = 32673.6953125;
byte[] brokenBytes = BitConverter.GetBytes(doubleValue);;
【问题讨论】:
-
一个 double 有 8 个字节的数据。您希望如何将这些数据存储在 3 个字节中?这将是有损的,您需要告诉我们格式。
-
@usr 你是完全正确的。完全忘记了双人床的大小。您能告诉我您想要的格式是什么吗?
-
你打算怎么把8个字节变成3个?
-
@usr 当我查看一些转换为字节的值时,看起来我可以得到一个索引值并将其添加到另一个索引值,只要它低于 255。但是然后我意识到:1)它改变了原来的值 2)不可能对其他双精度值做同样的事情。但也许你可以帮我解决这个问题:使用
BitConverter类是将值转换为字节数组的正确方法吗? -
这是正确的方法,但在您清楚如何将 8 个字节放入 3 之前,这将一事无成。
标签: c# bytearray data-conversion