理论上.java数学运算中.位运算肯定比直接加减乘除效率要高.但具体能高多少.未知.简单测试如下.
long t = 455565655225562l;
long a = 0;
long start = System.currentTimeMillis();
for (int i = 0; i < 1000; i++) {
a = t / 1024 / 1024 / 1024;
}
long end = System.currentTimeMillis();
System.out.println("time1=" + (end - start));
start = System.currentTimeMillis();
for (int i = 0; i < 1000; i++) {
a = t >> 30;
}
end = System.currentTimeMillis();
System.out.println("time2=" + (end - start));
1000次时:
time1=0
time2=0
1000000次时:
time1=1
time2=2
从这里看,位运算有时效率还会低.具体待解.