java的左移右移 - kylodw/android_knowledge GitHub Wiki

java中有三种移位运算符

<< : 左移运算符,num << 1,相当于num乘以2

>> : 右移运算符,num >> 1,相当于num除以2

>>> : 无符号右移,忽略符号位,空位都以0补齐

   private static void binary() {
        int number = 10;
        System.out.println("原始数据二进制:" + Integer.toBinaryString(number));
        System.out.println("原始数据二进制左移:" + Integer.toBinaryString(number << 1));
        System.out.println("原始数据左移" + (number << 1));
        System.out.println("原始数据二进制右移:" + Integer.toBinaryString(number >> 1));
        System.out.println("原始数据右移" + (number >> 1));

        System.out.println("原始数据二进制无符号右移" + Integer.toBinaryString(number >>> 1));
        System.out.println("原始数据无符号右移" + (number >>> 1));
    }

输出

原始数据二进制:1010
原始数据二进制左移:10100
原始数据左移20
原始数据二进制右移:101
原始数据右移5
原始数据二进制无符号右移101
原始数据无符号右移5