我不想不必要地重新發明輪子,但我一直在尋找strtod的功能,但有一個基本參數(2,8,10,16)。 (我知道strtoul允許一個基本參數,但我正在尋找返回類型雙)。任何建議/指針在正確的方向?謝謝。strtod與基本參數
1
A
回答
2
對於任意基礎,這是一個難題,但只要你的基數是2的冪,樸素樸素算法就可以正常工作。
strtod
(在C99中)支持與C語言的十六進制浮點常量相同格式的十六進制浮點數。 0x
前綴是必需的,p
分隔指數,指數以10爲底,代表2的冪。如果您需要支持C99之前的庫,您將沒有這種運氣。但是因爲你也需要2/4/8基數,所以無論如何它可能是最好的。
編輯:天真的算法的概要:
- 開始用浮點累加器變量(
double
或什麼的,因爲你喜歡)初始化爲0 - 從最左邊的數字開始,直到小數點,對於您處理的每個字符,將累加器與基數相乘,並將字符的值添加爲數字。
- 在小數點後面,開始一個新的運行地點值變量,最初爲1/base。在您處理的每個字符上,添加數字值乘以地點值變量,然後按地點除以地點值變量。
- 如果看到指數字符,閱讀次數以下它作爲一個整數,如果你想有可能通過處理2.
電源使用標準庫函數來縮放浮點數將數字過多的表格捨去後,一旦超過步驟2或3中重要位置的數量,您必須制定出該邏輯。否則,您可以忽略該數字。
0
不太可能 - 我從來沒有在其他數字庫中看到浮點數編碼爲「小數」。
相關問題
- 1. 真實世界strtod();與WINAPI文本框
- 2. 基本Python函數(數學參與)
- 3. 基本BackgroundWorker的用法與參數
- 4. ASP.NET MVC基本的路由與參數
- 5. strtod和下溢
- 6. 基本參數問題
- 7. 訪問GridPanel基本參數
- 8. Dropzone.js - 設置基本參數
- 9. 基本的bash腳本參數
- 10. David M. Gay的dtoa.c的strtod()函數
- 11. Couchbase N1QL基本選擇與命名參數
- 12. 基本數據庫設計 - 可選參與
- 13. 構造與基本實例作爲參數
- 14. strtod更改最後一位
- 15. 正確的strtod實現?
- 16. Java中的高效strtod?
- 17. ARMCC 5優化strtol和strtod
- 18. 的strtod將返回0
- 19. 相當於C++的Python strtod
- 20. 與基於在XSLT 2個參數2.0
- 21. 提取參數與腳本
- 22. 腳本src與'參數'
- 23. 與參數腳本塊
- 24. 非常基本的JavaScript參數問題
- 25. 基本的ASP.NET MVC查詢參數
- 26. 骨料陣列基本參數
- 27. 只覆蓋Mixin中的基本參數
- 28. URL參數的基本路由
- 29. 基於參數
- 30. 基於參數
相反,六角浮標是C標準的一部分。 – 2011-02-10 21:07:41
還值得注意的是,爲了有效存儲精確的浮點值,並且爲了避免由於其他軟件中的錯誤而導致回讀不正確的值的風險,您應該始終將浮點數存儲在兩個冪的基數中當他們打印他們作爲文本。 – 2011-02-10 21:40:34