在所有的运算中,位运算是最为高效的。因此,可以尝试使用位运算代替部分算术运算,来提高系统的运行速度。最典型的就是对于整数的乘除运算优化。
使用算术运算的实现:
long a = 100;
for (int i = 0; i < 100000000; i++) {
a *= 2;
a /= 2;
}
将循环体中的乘除运算改为等价的位运算,如下:
long a = 100;
for (int i = 0; i < 100000000; i++) {
a <<= 2;
a >>= 2;
}
两端代码执行了完全相同的功能,在每次循环中,都将整数乘以4,并除以4.在这若干次循环中,第一段代码相对耗时141ms,而第二段使用位运算的代码相对耗时68ms。