-1
A
回答
0
https://docs.oracle.com/javase/7/docs/api/java/lang/Double.html#longBitsToDouble(long)
如果參數爲0x7ff0000000000000L,結果是正無窮大。
如果參數是0xfff0000000000000L,結果是負無窮大。
如果參數是0x7ff0000000000001L到0x7fffffffffffffffL範圍內的任何值,或者範圍是0xfff0000000000001L到0xffffffffffffffffL,則結果是NaN。 Java提供的IEEE 754浮點操作不能區分具有不同位模式的相同類型的兩個NaN值。 NaN的不同值只能通過使用Double.doubleToRawLongBits方法來區分。
在所有其他情況下,令s,e和m爲可以從以下參數計算的三個值:
int s = ((bits >> 63) == 0) ? 1 : -1;
int e = (int)((bits >> 52) & 0x7ffL);
long m = (e == 0) ?
(bits & 0xfffffffffffffL) << 1 :
(bits & 0xfffffffffffffL) | 0x10000000000000L;
然後浮點結果等於數學的值表達s·m·2 e-1075。
轉換可以反向完成。對於「正常」數字x,令s
爲數值的符號,e
爲底數(log2(x))+ 1075,並且m
從x/2變爲四捨五入,並且適當地移位值:s
是高位,e
是接下來的11位,m
是剩餘的52位。
0
通俗地說浮點數用2的冪來表示。每個浮點都有三部分。
- 註冊
- 指數
- 尾數
登錄部分很簡單。它具有負面和正面的價值。大約使用尾數和指數表示的浮點值用於對其進行縮放。示例請參見following site。您的5.34價值低於。請注意,這是近似值,如下圖所示,您的數字不是5.34,而是5.340000152587891。
相關問題
- 1. 如何用二進制表示整數
- 2. 打印非常長的二進制表示的整數值
- 3. 整數二進制
- 4. 數字的二進制表示
- 5. 強制二進制數字顯示有符號整數?
- 6. 非二進制運算符aes函數的非數字參數
- 7. 非ASCII字符二進制或整數在C + +
- 8. ,打印整數的二進制表示遞歸函數
- 9. 以二進制表示浮點數和整數
- 10. 二進制字符串到整數
- 11. 二進制字符串到整數
- 12. Ruby整數到二進制字符串
- 13. 非法整數字符十六進制
- 14. pgsql的數字/十進制二進制表示,可可
- 15. Java二進制到整數
- 16. 二進制負整數
- 17. Store中的非數字的字符串作爲二進制整數
- 18. reshape2 dcast非二進制運算符的非數字參數
- 19. 在MATLAB中將非整數轉換爲二進制數
- 20. 整數數組二進制數組
- 21. 將二進制數字轉換爲二進制數字
- 22. 二郎二進制優化知整數
- 23. 整數到二進制二郎
- 24. 有符號二進制數字char * of 2s恭維二進制表示的char * *?
- 25. 在二進制符號數字(冗餘二進制表示)中除以2
- 26. 用十進制數表示的二進制浮點數
- 27. 在Sagemath中總結表示分數的二進制數字
- 28. 將char整數表示轉換爲二進制
- 29. Go中的無符號整數的二進制表示
- 30. 32位整數的二進制表示法
http://en.wikipedia.org/wiki/IEEE_floating_point – 2014-11-23 23:00:13
http://babbage.cs.qc.cuny.edu/IEEE-754.old/Decimal.html – 2014-11-23 23:01:15
重複的不似乎回答了OP的問題,即關於浮點如何表示的問題,而不是如何進行轉換。 – 2014-11-23 23:03:26