位运算代替乘除法

来源:互联网 发布:项羽武力知乎 编辑:程序博客网 时间:2024/04/27 23:31

在所有的运算中,位运算是最为高效的。因此,可以尝试使用位运算代替部分算术运算,来提高系统的运行速度。最典型的就是对于整数的乘除运算优化。

使用算术运算的实现:

<span style="white-space:pre"></span>long a = 100;<span style="white-space:pre"></span>for (int i = 0; i < 100000000; i++) {a *= 2;a /= 2;}
将循环体中的乘除运算改为等价的位运算,如下:

<span></span>long a = 100;<span></span>for (int i = 0; i < 100000000; i++) {a <<= 2;a >>= 2;}
两端代码执行了完全相同的功能,在每次循环中,都将整数乘以2,并除以2.在这若干次循环中,第一段代码相对耗时141ms,而第二段使用位运算的代码相对耗时68ms。

0 0
原创粉丝点击