嗯,看一个二分的算法,发现除2写成 >>>1 ,顿时感觉高大上。
分析了当为正数时>>和>>>的效率.发现差不多,顺便温习了左移右移的知识。
public static void main(String[] args) {
// TODO: 2020/6/29 右移除以2的n次 >> 来讲,向右移动,正数高位补0.负数高位补1.
// 不确定正负时可以使用。
long A = System.currentTimeMillis();
System.out.println( Long.MAX_VALUE >> 1);
long B = System.currentTimeMillis();
// 当确定为正时可以使用
// Todo 无符号右移,正负数高位都补0.
System.out.println(Long.MAX_VALUE >>> 1);
long C = System.currentTimeMillis();
System.out.println("右移用的时间为:" + (B - A) + "ms");
System.out.println("无符号右移的时间为:"+(C - B) + "ms");
//TODO 左移乘以2的n次, 左移来讲,正负数地位都补0.
System.out.println(20 << 1);
}