0

我从串口移入 3 个字符,每 3 个字符是我为端口拆分的双倍,所以现在我需要把它放回去。

(发送前的值 = 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

请建议如何重建它,我不太了解双精度,我什至无法分辨双精度的哪一部分是小数点或 - 签名谢谢!

4

1 回答 1

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"));
于 2015-09-27T15:19:25.020 回答