C语言快速取以2为底的对数的方法


C语言快速取以2为底的对数的方法:

int FastLog2(int x)
{
    float fx;
    unsigned long ix, exp;

    fx = (float)x;
    ix = *(unsigned long*)&fx;
    exp = (ix >> 23) & 0xFF;

    return exp - 127;
}

推荐阅读:

C++ 隐式类类型转化 Implicit Class-Type Conversions

C语言变长数组之剖析

C语言需要注意的问题

C语言位域的使用及其注意点

C语言中简单的for循环和浮点型变量

《C语言从入门到精通》.(王娣,韩旭 ).[PDF] + DVD视频光盘文件

相关内容