在《java程序性能优化》中写到,位运算是运算中最高效的,而我依照书上的代码运行了一遍
发现并不是这样。
补上代码:
public class BitOperate {
public static void main(String[] args) {
nomal();
bit();
}
private static void nomal() {
long start =System.currentTimeMillis();
long a = 100;
for (int i = 0; i < 100000000; i++) {
a*=2;
a/=2;
}
System.out.println("nomal total used:"
+ (System.currentTimeMillis() - start) + "ms");
}
private static void bit() {
long start =System.currentTimeMillis();
long a = 100;
for (int i = 0; i < 100000000; i++) {
a<<=1;
a>>=1;
}
System.out.println("bit total used:"
+ (System.currentTimeMillis() - start) + "ms");
}
}
输出:
nomal total used:1ms
bit total used:3ms
望能解惑