如何从 char 数组中转换双打
how to cast doubles from char array
我从串行端口移入 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
请告知如何重建它,我不太了解双精度数,我什至不知道双精度数的哪一部分是小数点或 - 符号
谢谢!
我无法得到你的价值,但作为帮助可以建议你使用 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"));
我从串行端口移入 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
请告知如何重建它,我不太了解双精度数,我什至不知道双精度数的哪一部分是小数点或 - 符号 谢谢!
我无法得到你的价值,但作为帮助可以建议你使用 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"));