如何从char数组中转换双精度数

时间:2015-09-27 15:03:44

标签: c# casting char double byte-shifting

我从串口转移了3个字符,每隔3个字符就是我为端口拆分的双字符,所以现在我需要把它放回到gether。

(发送前的值= 0x3F3400或0.703125)

char[0] = 0x3F  (msb)
char[1] = 0x34
char[2] = 0x00  (lsb)

double total = (char[0] << 16)+(char[1] << 8)+(char[2]); // this part did not work

请建议如何重建这个,我不太了解双打,我甚至不知道双重的哪个部分是小数点或 - 符号 谢谢!

1 个答案:

答案 0 :(得分:1)

我无法获得你的价值,但是因为帮助可以建议你像这样使用BitConverter和字节数组:

var v = new byte[8];
v[7] = 0x3F;
v[6] = 0x34;
v[5] = 0x00;
double total = BitConverter.ToDouble(v, 0);
Console.WriteLine(total.ToString("0.0000000000000"));