对不起,如果它之前已经问过,但我真的无法找到明确的答案这个问题。 请告诉我,什么是转换的最快方法: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