移位乘除
a=a*4;
b=b/4;
可以修改为:
a=a2;
b=b2;
说明:
除2=右移1位2=左移1位
除4=右移2位4=左移2位
除8=右移位3位8=左移位3位
.
通常,如果需要用2的n次方相乘或除法,可以用移位的方法代替。
大多数c编译器用移位法获得代码比调用乘除法子程序生成的代码更有效率。
实际上,只需乘以或除以整数,就可以通过以下移位方法获得结果:
a=a*9
由于分析a*9可以分割为a*(81 )即a*8 a*1,所以可以变更为a=) a3 ) a
a=a*7
分析a*7可以分割为a*(8-1)即a*8-a*1,因此可以变更为a=(a3 )-a
可以类推除法的读者,但省略了
posted on 2013-11-11 19:06 **阅读(244 )评论)0)编辑收藏