关于JAVA基础的问题

这个是什么运算,能不能举例?谢谢

= 是移位运算符,既然是移位,那运算的对象就是二进制的“位”。

而对于这个运算符是“无符号”右移位操作符,符号左边指定的是操作数,符号右边指定的是向右边移动的位数,无论左边操作时是正是负,在向右移动的过程中,左边高位都插入0.

举例如下:
[code="java"]public class URShift {
public static void main(String[] args) {
// int类型在Java中占用32位
int i = -1;
System.out.println(Integer.toBinaryString(i));
i >>>= 10;//向右移位,高位补0
System.out.println(Integer.toBinaryString(i));

    int j = 1;
    System.out.println(Integer.toBinaryString(j));
    j>>>=10;
    System.out.println(Integer.toBinaryString(j));
}

}[/code]
输出结果:
11111111111111111111111111111111
1111111111111111111111
1
0

java 没>>>运算符吧。。

到是有。。

是无符号右位移
是带符号右位移
你试试-1 >>> 1跟-1 >> 1的区别就知道了。

看了下书,的确如RednaxelaFX 所说。。
ME OUT :cry: ;
thinking in java 中

是无符号右位移,使用“零扩展”:无论正负,都在高位插入0。这一操作符是C and C++ 没有。
楼主还是看一下thinking in java 吧
里面也有示例。。

右移,左边空出的位以0填充

http://blog.csdn.net/knowloveno/archive/2008/09/02/2868476.aspx