位移运算符操作的对象是二进制的位,可以用位移运算符来处理int型整数。
public static void main(String[] args) {
int x = 15; //1111
int y = 3;
System.out.println(x<<y); //结果为120,1111000
System.out.println(x>>y); //结果为1,0001
System.out.println(x>>>y); //结果为1,0001
}
左移运算符(<<)
左移运算符,将运算符左边的对象向左移动运算符右边指定的位数(在低位补0)
"有符号"右移运算符(>>)
"有符号"右移运算 符,将运算符左边的对象向右移动运算符右边指定的位数。使用符号扩展机制,也就是说,如果值为正,则在高位补0,如果值为负,则在高位补1.
"无符号"右移运算符(>>>)
"无符号"右移运算 符,将运算符左边的对象向右移动运算符右边指定的位数。采用0扩展机制,也就是说,无论值的正负,都在高位补0.
public static void main(String[] args) {
int x = -15;
int y = 3;
System.out.println(x<<y); //结果为-120
System.out.println(x>>y); //结果为-2
System.out.println(x>>>y); //结果为536870910
}


本文介绍了Java中的位移运算符,包括左移运算符(<<)、有符号右移运算符(>>)和无符号右移运算符(>>>)。通过实例展示了它们如何改变整数的二进制表示,并解释了不同类型的位移操作对正负数值的影响。
8587

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



