C# c语言中字节数组到双精度的转换#

C# c语言中字节数组到双精度的转换#,c#,.net,C#,.net,我有一个三字节的数组,我想用c#将数组转换成双字节。请指导我。好吧,这取决于您希望转换做什么 您可以使用位转换器将8个字节(正确格式)转换为双字节。ToDouble-但只有三个字节有点奇怪-毕竟双字节通常有64位信息。这三个字节如何表示一个数字?基本上是什么格式?当你明白了这一点后,剩下的就很容易了。取决于字节中到底存储了什么,但是你可以用5个字节填充数组,所有字节都包含0,然后使用。double是8个字节的数组,所以用3个字节你就不会有所有可能的值 要想做你想做的事: var myBytes[

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

好吧,这取决于您希望转换做什么


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

取决于字节中到底存储了什么,但是你可以用5个字节填充数组,所有字节都包含0,然后使用。

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);

提供您的代码将是一个很好的开始,可以回答您使用的endian符号是什么?我已经尝试过这种方法,但它会导致异常。我不知道为什么。你的数据是正确的浮点格式吗(我相信C#使用的是标准的IEEE浮点格式)