32 位比较比 64 位比较快吗?

时间:2021-04-16 11:36:08

标签: c

32 位的比较比 64 位的比较快吗?

我正在查看这个文件 http://www.netlib.org/fdlibm/s_cos.c

他们有这段代码

    /* |x| ~< pi/4 */
    ix &= 0x7fffffff;
    if(ix <= 0x3fe921fb) return __kernel_cos(x,z);

我理解第一行,计算x的绝对值。但为什么比较如此复杂?通过比较前 32 位而不是全部 64 位,性能是否有任何改进?我可以写吗

long unsigned int ix = *(long unsigned int * (&x));
ix &= 0x7fffffffffffffff;
if (ix < 3fe921fb54442d18) 
/* What comes next */

并期望在 64 位机器上获得相同的速度性能?虽然我同意这会消耗更多内存。

0x3fe921fb54442d18 是 pi/2。

0 个答案:

没有答案
相关问题