2015-09-27 23 views
0

我正在從串行端口轉換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 

請告知如何重建這個,我不明白雙打不夠好,我甚至無法分辨出哪一個雙重的部分是小數點或 - 號 謝謝!

回答

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")); 
+0

接近,但IDK的爲什麼被甩出值這樣,也似乎在微芯片的雙倍是24位,現在試圖挖掘更多的細節 – doggy