在C#中将字节数组转换为双精度浮点数

5
我有一个由三个字节组成的数组,我想使用c#将其转换为double类型。请指导我。

2
提供你的代码是得到答案的好开始。 - Brock Woolf
你使用的是哪种字节序? - Jaroslav Jandek
3个回答

5

那取决于您想要转换的内容。

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


3

一个double是由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);

我尝试过这种方法,但它引发了异常。我不知道为什么。 - Siddiqui
你的数据是否采用正确的浮点格式?(我相信C#使用标准IEEE浮点格式) - Alan

2

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接