對不起,如果它之前已經問過,但我真的無法找到明確的答案這個問題。 請告訴我,什麼是轉換的最快方法:c - 將char *數組轉換爲int和float的最有效方法是什麼?
char * array to int
char * array to float
的char *數組存儲號碼,例如:
"12345"
"1234,56789"
如果用於x86和x64系統上的最快的方式是不同的,請告訴他們兩人。
編輯:「最快」,我的意思是「最高效」,而不是「最簡單易用」。
對不起,如果它之前已經問過,但我真的無法找到明確的答案這個問題。 請告訴我,什麼是轉換的最快方法:c - 將char *數組轉換爲int和float的最有效方法是什麼?
char * array to int
char * array to float
的char *數組存儲號碼,例如:
"12345"
"1234,56789"
如果用於x86和x64系統上的最快的方式是不同的,請告訴他們兩人。
編輯:「最快」,我的意思是「最高效」,而不是「最簡單易用」。
開始的atoi()和ATOF(),測量速度,決定它是否是一個問題 - 然後尋找一個解決方案
編輯 - 它幾乎肯定的是,I/O將主宰任何時間花在做轉換。如果轉換時間很重要(在配置文件之後),那麼如果您知道格式即。整型總是4digits,彩車總有5位小數,你也許可以寫一個手調整例程確實比標準庫更好
你可以使用
atoi()
的整數和
atof()
浮標。
對於int
,明顯的循環可能是最快的。
對於float
,它要複雜得多。如果你不關心結果是否正確,那麼類似的小循環也很好。如果你需要確切的結果,你會想要使用strtod
或atof
或類似的,因爲滾動你自己是非常困難的。
試着看着atoi()和atof()。我只是想知道谷歌如何錯過了一個? – Mithrandir 2012-02-08 18:10:13
我知道一些方法,但我需要最快的方式 - 對於處理大塊數據很有用。 – 2012-02-08 18:11:27