我们在项目中进行了大量的浮点到整数的转换。基本上是这样的
for(int i = 0; i < HUGE_NUMBER; i++)
int_array[i] = float_array[i];
执行转换的默认 C 函数非常耗时。
是否有任何解决方法(可能是手动调整的功能)可以稍微加快处理速度?我们不太关心精度。
最佳答案
这里的大多数其他答案只是试图消除循环开销。
仅限 deft_code's answer触及可能是真正问题的核心——将 float 转换为整数在 x86 处理器上的成本惊人地高。 deft_code 的解决方案是正确的,尽管他没有给出引用或解释。
这里是技巧的来源,有一些解释和版本,具体说明您是要向上、向下还是向零舍入:Know your FPU
很抱歉提供链接,但这里写的任何内容,如果没有复制那篇优秀的文章,并不能说明问题。
关于c++ - 如何加快 float 到整数的转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/429632/