【发布时间】:2010-08-14 14:09:24
【问题描述】:
我读过 (What is the fastest way to convert float to int on x86) 中提到的 (http://www.stereopsis.com/FPU.html)。有谁知道慢速简单转换(见下面的 sn-p)是否也适用于 ARM 架构?
inline int Convert(float x)
{
int i = (int) x;
return i;
}
要应用 FPU 文章中提到的一些技巧,您必须设置浮点运算的精度。我如何在 ARM 上做到这一点?
在 ARM 架构上最快的浮点到整数转换是什么?
谢谢!
【问题讨论】:
-
请不要在实际代码中命名像
Convert这样的函数:P -
@Billy:我明白你的意思。地板会更好:-)
-
回到那天(大约 15 年前)在 x86 上进行普通类型转换 (int)afloat 时存在性能问题,这是由于 fpu 寄存器中的默认 float2int 是一个地板,并且不在身边。因此,为了使代码在那个时代变得更快,编写了特殊的程序集。从那个时候开始的任何代码都将期望浮点到整数转换使用地板操作而不是普通回合。但是,使用 floor 函数,然后强制转换为 int 与仅强制转换为 int(四舍五入到最近),您可能会受到双重打击。
标签: optimization floating-point arm fpu