1
我想下面提到的十六進制值轉換爲電壓的轉換,十六進制轉換爲十進制電壓轉換
2字節簽名2S比較二進制小數與二進制點最顯著位的右邊。 1:512V縮放。 例子:
0x2A80 → 170.00 V
0xD580 → ‐170.00 V
但0x2A80轉換給了我10880十進制值。我怎樣才能從0x2A80獲得170.00 V?
我想下面提到的十六進制值轉換爲電壓的轉換,十六進制轉換爲十進制電壓轉換
2字節簽名2S比較二進制小數與二進制點最顯著位的右邊。 1:512V縮放。 例子:
0x2A80 → 170.00 V
0xD580 → ‐170.00 V
但0x2A80轉換給了我10880十進制值。我怎樣才能從0x2A80獲得170.00 V?
如果0x2A80是170.00,那麼這意味着你有10位之前的點和6點之後的點。或者換句話說,你有64分之10880== 170
你的問題似乎包含着一些誤解:
事實上,170.0是電壓無關。無論電壓,距離還是沒有單位的數字,數字都是一樣的。
在大多數編程語言中,您沒有「十進制」或「十六進制」值,只有值。當您處理文本輸出和字符串時,只能使用十進制和十六進制。 0x2A80
是 10880和0xD580
是-10880。
如果你碰巧在C是編程:
short fixedPointNumber;
float floatingPointNumber;
scanf("%hx", &fixedPointNumber);
floatingPointNumber = fixedPointNumber/64.0f;
printf("Converted number: %f\n", floatingPointNumber);