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