如果我有一個IEEE浮動十六進制42F6E979,我該如何將它轉換爲十進制?我相信十進制表示法是= 123.456001將IEEE浮點十六進制轉換爲十進制?
回答
請參閱Wikipedia或調用可能已存在於您的環境中的庫例程。這是一個經常重新發明的輪子
當您測試自己的代碼時,可以使用this online tool來檢查您的答案。供參考,你是正確的,小數點是123.45 ...
維基百科也有一個useful article以及。
+1爲鏈接到在線工具 - 非常有用。 – 2010-10-08 15:50:27
(大部分)彙編語言並不強制強制執行類型,因此您只需使用該值初始化一個位置,然後將其作爲浮點處理/使用。要轉換的最簡單的方法通常是這樣的:
.data
myfloat dd 042F6E979H
mydec db 10 dup(?)
.code
mov ebx, offset mydec
fld myfloat
fbstp [ebx]
這實際上產生二進制編碼的十進制,所以你必須每個字節分爲兩個數字來顯示。當然,這是x86的 - 大多數其他架構使這項工作更加困難。例如,在PowerPC上,您有fctiw
,它只是轉換爲整數(與x86 fist
的常規順序相同)。要使用它,通常會乘以10的倍數以獲得所需的小數位數,然後轉換爲整數,並將小數點放在結果的正確位置。當/如果1)您接近浮點數範圍的極限,或2)您想要的精度超過您在單個整數中可以表示的值時,它會變得有點難看。
我會在C中這樣做,因爲你沒有提供語言。
char hex[];
int *ptr;
for(int i = 0; i < 8; ++i)
{
&ptr += toNumber(hex[i]) << (i * 4);
}
float *value = (float*)ptr;
我會留給OP編寫toNumber函數。
'&ptr + ='應該做什麼?該地址的運營商不會給你一個左值。你的意思是'*(ptr ++)= something'的意思嗎? 'ptr'如何初始化? – 2015-09-29 07:07:02
- 1. 將十六進制轉換爲IEEE 754
- 2. 將十進制值轉換爲32位浮點十六進制
- 3. 將十進制轉換爲十六進制和十六進制
- 4. 如何將十六進制轉換爲IEEE浮點python
- 5. 將十六進制字符串轉換爲IEEE 754浮點數
- 6. 在C#中將十六進制轉換爲IEEE 754浮點數
- 7. Java浮點到IEEE-754十六進制?
- 8. 將十六進制轉換爲二進制到十六進制?
- 9. 轉換IEEE 754浮點數以十六進制字符串
- 10. 將十進制轉換爲十六進制/二進制
- 11. 將八進制數轉換爲十進制和十六進制
- 12. 將字符串轉換爲十六進制到十六進制
- 13. Python如何將十六進制浮點數轉換爲十進制
- 14. 十六進制和十進制轉換
- 15. 轉換十六進制到十進制
- 16. 將十六進制轉換爲二進制,然後轉換爲十進制
- 17. 使用限制將十進制轉換爲十六進制
- 18. 將二進制浮點數轉換爲十六進制浮點數
- 19. 十六進制浮點數
- 20. IEEE十進制到二進制轉換
- 21. 轉換爲十六進制?
- 22. 十六進制轉換爲二進制
- 23. 十六進制轉換爲二進制
- 24. Java - 將十六進制轉換爲IEEE-754 64位浮點數 - 雙精度
- 25. 如何將十六進制轉換爲IEEE 754 32位浮點C++
- 26. 十六進制轉換爲十進制電壓轉換
- 27. 十進制轉換爲十六進制的轉換(Java)的
- 28. 如何十六進制轉換爲十六進制
- 29. 十六進制()參數不能轉換爲十六進制
- 30. 如何將十六進制NSData轉換爲十進制數組?
什麼彙編語言和體系結構? – 2010-10-08 15:45:24
需要'家庭作業'標籤? – 2010-10-08 15:49:27
你的意思是ascii?如何從二進制浮點轉換爲人類可讀的ascii? – 2010-10-09 05:11:12