各位大侠,java语法里边有 “>>>” 这个吗,怎么我看源代码里有这个东西,什么意思
i >>>= shift;

解决方案 »

  1.   

    无符号右移 操作符  java特有的,移一位就是除以2 
      

  2.   

    不带符号的右移
    比如负数,第一个二进制数是1,
    如果用 >> 则带符号,那个最高的1不会变动
    而 >>> 则会让那个1 也跟着右移。
      

  3.   


    >>>=  就是 右移后 将左边的值 赋值给右边。over
      

  4.   


      /**
         * @param args
         * @throws FileNotFoundException 
         */
        public static void main(String[] args) throws FileNotFoundException
        {       int b =1 ;
           int a  =  b >>>= 1;
           System.out.println(a);
        }可以编译啊,是不是你的jdk 版本太低啊。哈哈
      

  5.   

    >>> 和   >>>= 有什么区别呢? 刚跑了下,没感觉出区别。
      

  6.   

    >>> 逻辑右移: 无论正负 左边补0 移几位就补几个0
    >>  算术右移: 如果是正数 左边补0 移几位就补几个0; 如果是负数 左边补1 移几位就补几个1所以逻辑右移和算术右移是不一样的但是逻辑左移和算术左移完全一样 都是右边补0 移几位就补几个0
    所以java里没有逻辑左移<<<这个运算符 只有算术左移<<
    public static void main(String[] args) {
    int a = -1;
    System.out.println(Integer.toBinaryString(a));
    a = a >> 31;
    System.out.println(Integer.toBinaryString(a));
    a = a >>> 31;
    System.out.println(Integer.toBinaryString(a));
    a = a << 1;
    System.out.println(Integer.toBinaryString(a));
    }
      

  7.   

    位运算,无符号右移, >>是有符号的
      

  8.   

    <<和>>运算符将二进制进行右移和左移。
    >>>将用0填充高位。>>用高位填充高位。没有<<<运算符。
      

  9.   

    < <和>>运算符将二进制进行右移和左移。 
    >>>将用0填充高位。>>用符号位填充高位。没有 < < <运算符。