理论上.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
从这里看,位运算有时效率还会低.具体待解.