在數字界線什麼是真正的情況下,不C++ std::numeric_limits<float>::lowest()
不等於的std::numeric_limits<float>::max()
的負?浮動最低和最高
浮動最低和最高
回答
std::numeric_limits<float>::lowest()
將等於的std::numeric_limits<float>::max()
負如果浮點表示使用signed magnitude,作爲最大值和最低值將具有相同的有效數字(忽略符號位)和指數,與二者均含有它們的最大值。符號位將決定數字是正數還是負數,並且不會影響數字的大小。 (另一個相同的結論是,底層表示將能夠表示正和負零。)IEEE 754使用帶符號的幅度表示,所以這是您在實踐中最有可能遇到的。
但是,替代表示法是使用two's complement有效數。二進制補碼的性質是最大負值具有比最大正值更大的幅度,並且因此對於使用二進制補碼有效數的浮點表示,std::numeric_limits<float>::lowest()
將是而不是等於std::numeric_limits<float>::max()
的負數。使用補一個真正的系統的一個例子有效位數的浮點格式爲IBM 1130,大約1970年
現在,cppreference.com確實狀態:
雖然它不是根本ç真正++浮動Poing的類型,一第三方浮點類型T可能存在,例如
std::numeric_limits<T>::lowest() != -std::numeric_limits<T>::max()
。
但我不知道這種說法的依據是什麼,因爲C++ 11標準,段落18.3.2.4,僅僅規定了lowest()
是:
有限值
x
這樣沒有其他有限值y
其中y < x
。有意義的所有專業
is_bounded != false
。
它也注意到在腳註:
lowest()
是必要的,因爲不是所有的浮點表示有一個最小的(最負)值是 負最大(最正)有限值。
所以它似乎是一個補浮點表示可以由C++實現使用,這將有std::numeric_limits<float>::lowest()
不等於std::numeric_limits<float>::max()
負。
- 1. 訂購最高和最低
- 2. 最高值和最低值
- 3. 最高到最低
- 4. 確定最高和最低編號(Java)
- 5. Codewars:解決Kata - 最高和最低
- 6. 最高和最低的平均C++
- 7. Python列表 - 最高和最低
- 8. MiPS32bits什麼是最高和最低值?
- 9. 找到最高和最低的號碼
- 10. 找到最低和最高的多列
- 11. Java - 最高,最低和平均水平
- 12. 顯示最高和最低值Sqlplus
- 13. 顯示最高和最低的輸入
- 14. 爪哇 - 最高,最低和平均
- 15. 高中最低,最高門檻
- 16. 如何查找最高(最新)和最低(最早)日期[R]
- 17. 量表數組爲最低/最高
- 18. 最高/最低值,而無需在SQL
- 19. 訂購WordPress的post_meta - 最低到最高
- 20. 組織數量從最高到最低
- 21. SciPy的rankdata反向最高到最低
- 22. sql order by從最高到最低值
- 23. PHP排序JSON從最高到最低
- 24. numeric_limits最低和最低成員函數
- 25. 佈局與重量和最低高度
- 26. 最高,最低和和在java中扣除的答案
- 27. Math.max和Math.min輸出允許的最高和最低值
- 28. css頁面最低高度
- 29. MySql:高級排序第一行到最高然後從最低到最高?
- 30. SQL返回量最高和最低的價格