-
运算符 >> 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
}
}
本文详细解析了Java中位运算符的使用,包括有符号右移(>>)和无符号右移(>>>)的区别。通过具体的代码示例,展示了正数和负数在进行右移操作时的不同行为,以及补码表示法的应用。
299

被折叠的 条评论
为什么被折叠?



