【发布时间】:2010-08-06 07:11:53
【问题描述】:
我有一个三个字节的数组,我想使用 c# 将数组转换为双精度。请指导我。
【问题讨论】:
-
提供您的代码将是获得答案的良好开端
-
你用的是什么字节序?
我有一个三个字节的数组,我想使用 c# 将数组转换为双精度。请指导我。
【问题讨论】:
嗯,这取决于您希望转换做什么。
您可以使用 BitConverter.ToDouble 将 8 个字节(以正确的格式)转换为 double - 但只有 三个 个字节有点奇怪 - 毕竟,double 通常有 64 位信息。这三个字节如何表示一个数字?基本上是什么格式?当你弄清楚这一点后,剩下的就很容易了。
【讨论】:
嗯,双精度是一个 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);
【讨论】:
取决于字节中存储的确切内容,但您可以只用 5 个字节填充数组,所有字节都包含 0,然后使用 BitConverter.ToDouble。
【讨论】: