我正在使用Mini Ini從嵌入式系統上的.ini文件中讀取數據。它支持長整數或字符串閱讀。我擁有的一些數字太大而不適合長時間,所以我正在以字符串的形式閱讀它們。不過,我需要將它們轉換爲uint64_t。如何將ASCII碼轉換爲uint64?
我試圖將其轉換爲使用atof
的浮點數並將其轉換爲uint64_t,該uint64_t崩潰並燒燬,這可能是因爲cast會更改程序如何查看這些位而不更改位本身。
char string_in[100];
//ret = ini_gets(section,key,"default_value",string_in,100,inifile);
//To simplify, use
string_in = "5100200300";
uint64_t value = (uint64_t)atof(string_in);
我將不勝感激關於如何將字符串轉換爲uint64的幫助。
編輯:結論
的atoll功能轉換ASCII到很長很長,供應我所需要的目的。然而,爲了完整起見,我實現了接受答案中提供的功能,併爲我的問題提供了確切的答案。
浮動不是一個uint64_t中......夠大(BTW鑄造將執行截斷,但它適用於這一顯式轉換)。 – 2014-10-20 13:52:54
環礁()是我所需要的。謝謝,我感到愚蠢,但谷歌背叛了我,所以...... – Trogdor 2014-10-20 14:00:45
'strtoull()'提供比'atoll'更多的錯誤檢查。 – chux 2014-10-20 14:31:12