>>>好象都没有怎么用到。

解决方案 »

  1.   

    如果是负数>>> 和 >>的结果是不一样的,区别在最高位的设置
      

  2.   

    移位运算符面向的运算对象也是二进制的“位”。可单独用它们处理整数类型(主类型的一种)。左移位运算符(<<)能将运算符左边的运算对象向左移动运算符右侧指定的位数(在低位补0)。“有符号”右移位运算符(>>)则将运算符左边的运算对象向右移动运算符右侧指定的位数。“有符号”右移位运算符使用了“符号扩展”:若值为正,则在高位插入0;若值为负,则在高位插入1。Java也添加了一种“无符号”右移位运算符(>>>),它使用了“零扩展”:无论正负,都在高位插入0。
    http://topic.csdn.net/t/20060304/17/4592722.html
      

  3.   

    (>>)“有符号”右移位运算符使用了“符号扩展”:若值为正,则在高位插入0;若值为负,则在高位插入种1。
    (>>>)“无符号”右移位运算符,它使用了“零扩展”:无论正负,都在高位插入0。这一运算符是C或C++没有的。
      

  4.   

    >>:有符号右移位运算符,使用了“符号扩展”:若值为正,则在高位插入0;若值为负,则在高位插入种1。 
    >>>:无符号右移位运算符,它使用了“零扩展”:无论正负,都在高位插入0。
    再给个小例子,其实你可以自己写下的:
    public class SimpleTest {
    public static void main(String[] args) {
    int value=16,value2=-16;
    System.out.println(value+"有符号右移两位的值:"+(value>>2));
    System.out.println(value2+"有符号右移两位的值:"+(value2>>2));
    System.out.println(value+"无符号右移两位的值:"+(value>>>2));
    System.out.println(value2+"无符号右移两位的值:"+(value2>>>2)); }}
    运行结果:
    16有符号右移两位的值:4
    -16有符号右移两位的值:-4
    16无符号右移两位的值:4
    -16无符号右移两位的值:1073741820分析:可见,对于正数来说,这两个运算符是没有区别的,但是对负数来说,差别很大;这主要体现在右移后的最高位上补的是1或0,你可以自己再把二进制值打印出来看下
      

  5.   

    >>是算数右移,>>>是逻辑右移
    对于一个二进制数来说,第一位是它的符号位,正数为0,负数为1
    算数右移时高位填充符号位,保证符号不变,而逻辑右移时高位填充0
    对于左移则没有区别,无论是<<还是<<<都在低位填充0具体举例#7给出了
      

  6.   

    充其量所有的 <<< 和 >>>
    只有一种情况有区别。
    就是负数右移。是吧?
      

  7.   

    学了一个新东西,以前还不知道哦<<<