-
运算符 >> n (右移)
代表为对于数m向右移动n位,右边的n位舍弃,如果m为正数,左边的补0,负数补1 -
运算符 >>>n (无符号位右移)
代表为对于数m向右移动n位,右边的n位舍弃,左边的补0
public class 运算符区别 {
public static void main(String[] args) {
int n =9;
System.out.println(Integer.toBinaryString(n));
//1001
System.out.println(Integer.toBinaryString(n>>1));
//0100
int m=-9;
System.out.println(Integer.toBinaryString(m));
//11111111111111111111111111110111 这里是补码表示
System.out.println(m>>1);
//11111111111111111111111111111011 这里是补码表示,补码右移一位,最左边补1
}
}