嗯,看一个二分的算法,发现除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); }