最近碰到一个问题,就是java里有"<<",">>" 这两个运算符吗?上面两个运算符是什么意思?请各位大侠指点!

解决方案 »

  1.   

    当然有这2个运算符啊 
      这是位运算,也就是可以理解为直接操作内存中的二进制数
        前一个是 把一个二进制数左移    后一个是 右移
       如 把 8>>2  就是把8往左移动2位  也就是 8/(2x2)=2
       对应的 往右移N位就是 乘上 2的N次方
      

  2.   

    这是JAVA 的基础啊!看看书吧!应该有的……
      

  3.   

    求2的3次方效率最高的方法就是2<<3
      

  4.   

    “x<<y"是位运算符当中的"左移"运算,其中x是左移的数,y是左移的位。如:
    2<<2的运算过程:
    2转化为二进制是
    0000 0010
    那么左移2位得到
    0000 1000即得到结果为8
    总结:左移一位相当乘以2,左移n位相当于乘以2的n次方。右移<<是:
    右移一位相当于整除2。上面这两个是不带符号的移位运算。
    还有一个:>>>这个是带符号的右移
      

  5.   

    >>1相当于除2
    >>3就是除3次
      

  6.   

    JAVA的位运算。〈〈左移动两位,2次。0000 0001既 0000 0100
     〉〉右移 同理
      

  7.   

    移位运算符正负数都用补码作运算,>>和<<低位用0来填充,高位用符号位填充,若>>>(无符号右移)都0来填充
      

  8.   

    "a<<b;"将二进制形式的a左移b位,低位空出的所有b位补0;
    "a>>b;"将二进制形式的a右移b位,高位空出的所有b位补原来的符号位;
    还有a>>>b,将二进制形式的a右移b位,高位空出的所有b位补0;
    没有<<<符号,谨记;
    C++语言中有那个符号,不过意思不一样
      

  9.   

    <<和>>是java基础里的东西,就是左移和右移,比如a=10,转换成二进制就是1010,a<<1就是10100,再转换回去是20,那
    a<<1就相当于a*2,a<<3相当于a*(2*2*2),右移a>>1相当于a/2,不过用<<和>>速度快一点,因为用*/最终是用转换成<<和>>的。
      

  10.   

    不仅仅有 >> 和 <<,还有 ~ >>> | & ^ 这些呢!