有人可以向我解釋將十進制格式(如2+(2/7))轉換爲IEEE 754浮點表示的步驟嗎?謝謝!如何將2+(2/7)轉換爲IEEE 754浮點
0
A
回答
1
首先,2 + 2/7
不是大多數人稱之爲「十進制格式」的東西。 「十進制格式」會更普遍被用來表示一個數字,如:
2.285714285714285714285714285714285714285714...
即使...
有點朝三暮四。更常見的是,這個數字將被截斷或四捨五入到一定數量的小數位數:
2.2857142857142857
當然,在這一點上,它不再是正好等於2 + 2/7
,但「足夠接近」對於大多數的用途。
我們做類似的操作將一個數字轉換爲IEEE-754格式;代替基體10的,我們首先在基體2寫入數:
10.010010010010010010010010010010010010010010010010010010010010...
接下來我們「正常化」的個數,通過在形式2^e * 1.xxx...
寫入它的一些指數e
(具體地,前導的數位位置我們的數位):
2^1 * 1.0010010010010010010010010010010010010010010010010010010010010...
在這一點上,我們必須選擇一個特定的IEEE-754格式的,因爲我們需要知道有多少位保持周圍。我們選擇具有24位有效位數的「單精度」。我們圓重複二進制數爲24位:
2^1 * 1.00100100100100100100100 10010010010010010010010010010010010010...
24 leading bits bits to be rounded away
因爲尾隨位四捨五入比1000...
越大,輪數最多:
2^1 * 1.00100100100100100100101
現在,如何做其實這個值以IEEE-754格式編碼?單精度格式中已處於領先signbit(零,這是因爲數是正的),之後是包含二進制值127 + e
八位,後跟該有效的小數部分:
0 10000000 00100100100100100100101
s exponent fraction of significand
在十六進制這給了0x40124925
。
相關問題
- 1. 使用IEEE 754將浮點數轉換爲基數10使用IEEE 754
- 2. 將二進制32位IEEE-754浮點數轉換爲.net
- 3. 將pre-IEEE-754 C++浮點數轉換爲C#中的
- 4. 在C#中將十六進制轉換爲IEEE 754浮點數
- 5. IEEE 754浮點表示法
- 6. 如何將IEEE 754單精度浮點格式轉換爲小數?
- 7. 如何將十六進制轉換爲IEEE 754 32位浮點C++
- 8. 轉換爲IEEE 754單精度浮點格式幫助
- 9. 將十六進制轉換爲IEEE 754
- 10. 轉換IEEE 754浮點數以十六進制字符串
- 11. 轉換IEEE 754浮點數與C詛咒 - printf的
- 12. IEEE-754浮點數舍入機制
- 13. IEEE-754單精度浮點數mips
- 14. ,64位和80位浮點IEEE-754?
- 15. 如何輸出IEEE-754格式的整數作爲浮點數
- 16. 的Postgres從包含浮動BYTEA(IEEE 754)真實(個float4)轉換
- 17. 將十進制轉換爲IEEE-754格式
- 18. 將二進制字符串轉換爲IEEE-754單精度 - Python
- 19. 將IEEE 754 double轉換爲字符串的算法?
- 20. Ruby將64位IEEE 754十六進制轉換爲雙精度
- 21. matlab中的32位十六進制到32位浮點(IEEE 754)轉換
- 22. IEEE 754浮點 - 爲什麼這個工作?
- 23. 將c#float轉換爲IEEE單精度浮點字節
- 24. 將IEEE浮點十六進制轉換爲十進制?
- 25. 將C中的浮點數轉換爲IEEE標準
- 26. 將32位浮點數轉換爲IEEE 80位
- 27. Java浮點基元有沒有任何IEEE 754標準實現?
- 28. 如何將IEEE-11073 16位SFLOAT轉換爲Java中的簡單浮點型?
- 29. 單精度IEEE 754浮點數的格式化
- 30. IEEE 754浮點舍入模式硬件/軟件
你問關於彙編代碼中的算術表達式求值器,還是什麼? – 2011-04-21 23:46:24
算術表達式 – 2011-04-21 23:50:55
你的意思不僅僅是「2.0+(2.0/7.0)」?你想在IEEE754中使用這些數字的二進制表示形式,以及關於加法和除法如何工作的描述,或者其他什麼? – 2011-04-22 16:56:35