compiler优化的时候都会把乘以3之类的搞成bitwise之类的


所有跟贴·加跟贴·新语丝读书论坛

送交者: AQuestion 于 2008-02-10, 16:03:28:

回答: 就算不是浮点(而且现代浮点跟整数差别不大)也是bitwise快 由 AQuestion 于 2008-02-10, 15:53:10:

a*3 = (a<<1)+a.

所以我有印象bitwise比乘法快不少。我刚写了个小程序试验了
一下。(k/3)比(k&3)慢不少。一个时间是134100000,一个是
38000000。


#include <stdio.h>

main()
{
int i, j, k;

k=7000;
clock(0);
for(i=0; i<1000000000; i++)
// j = k/3;
j = k&3
printf("%d\n", clock());
}





所有跟贴:


加跟贴

笔名: 密码: 注册笔名请按这里

标题:

内容: (BBCode使用说明