在x86上用c / c ++转换16.16定点到32位浮点的最快方法?

时间:2010-02-10 03:02:00

标签: c++ floating-point fixed-point

大多数人似乎想要走另一条路。我想知道是否有一种快速的方法将固定点转换为浮点,理想情况下使用SSE2。直接C或C ++甚至asm都可以。

1 个答案:

答案 0 :(得分:2)

只要你有一个双精度FPU就很容易:有53位有效数字。 SSE2具有双精度。

float conv_fx( int32_t fx ) {
    double fp = fx;
    fp = fp / double(1<<16); // multiplication by a constant
    return fp;
}