java中的三种移位运算符

Jacky Java 2022-11-24 9
<< :左移运算符,x << 1,相当于x乘以2(不溢出的情况下),低位补0
>> :带符号右移,x >> 1,相当于x除以2,正数高位补0,负数高位补1
>>> :无符号右移,忽略符号位,空位都以0补齐
        int num = 100;
        System.out.println(Integer.toBinaryString(num));

        System.out.println(Integer.toBinaryString(num<<3));

        System.out.println(Integer.toBinaryString(num>>3));

        System.out.println(Integer.toBinaryString(num>>>3));

        num = -100;
        System.out.println(Integer.toBinaryString(num));

        System.out.println(Integer.toBinaryString(num<<3));

        System.out.println(Integer.toBinaryString(num>>3));

        System.out.println(Integer.toBinaryString(num>>>3));
1100100
1100100000
1100
1100

   11111111111111111111111110011100
      11111111111111111111110011100000
11111111111111111111111111110011
   11111111111111111111111110011