2015-08-20 366 views
1

我想下面提到的十六進制值轉換爲電壓的轉換,十六進制轉換爲十進制電壓轉換

2字節簽名2S比較二進制小數與二進制點最顯著位的右邊。 1:512V縮放。 例子:

 0x2A80 → 170.00 V 
     0xD580 → ‐170.00 V 

但0x2A80轉換給了我10880十進制值。我怎樣才能從0x2A80獲得170.00 V?

回答

1

如果0x2A80是170.00,那麼這意味着你有10位之前的點和6點之後的點。或者換句話說,你有64分之10880== 170


你的問題似乎包含着一些誤解:

  1. 事實上,170.0是電壓無關。無論電壓,距離還是沒有單位的數字,數字都是一樣的。

  2. 在大多數編程語言中,您沒有「十進制」或「十六進制」值,只有值。當您處理文本輸出和字符串時,只能使用十進制和十六進制。 0x2A80 10880和0xD580-10880。


如果你碰巧在C是編程:

short fixedPointNumber; 
float floatingPointNumber; 

scanf("%hx", &fixedPointNumber); 
floatingPointNumber = fixedPointNumber/64.0f; 
printf("Converted number: %f\n", floatingPointNumber);