左移位把整形值转换成32位二进制数之后不包括最高位的符号位
其他位左移n位,右边补零。<<2的结果是整数乘以2的2次方

解决方案 »

  1.   

    Thingking in java里说得很清楚的,是左移操作,类似还有
    >>, >>>操作。
      

  2.   

    位运算左移位的时候,右边直接补零。
    如果是整型数据右移位的话,先转化为其补码,然后再移位。左边补的是符号位。
    还有一个填0右移(>>>),不管正负数,直接补0。
      

  3.   

    我不都不知道你的kRi,kTr为什么要这样定义呀!如果一个变量的值是你所说的1或2,直接把1或2赋给左边的变量不就行了呀!
      

  4.   

    你好...关于移位问题,thinking in java中有很好的解释..建议你去看看
      

  5.   

    简单的写一个程序就可以知道结果:
    public class Yiwei
    {
    public static void main(String[] args)
    {
    int kRi= (1 << 2);                  int kTr= (1 << 0);
        
                      System.out.println("kRi="+kRi);
                      System.out.println("kTr="+kTr); }
    }
    ******************
    输出为:
    kRi=4
    kTr=1
    ******************<< 左移  >>右移 >>>无符号右移左移x位,就是乘2的x次方;对于正数,>>和>>>运算结果相同,右移x位相当于除以2的x次方;
    对于负数,二进制数的高位为1,>>和>>>的运算结果不相同,>>在移位时会复制符号位,即高位填1,例如:
    1111 0010>>2
    _____________
    1111 1100
    即:负数运算完之后仍为负数;负数在进行>>>运算时,高位填零,则运算之后为正数,且右移的位数越少,结果越大。
    例如:
    1111 0010>>>2
    ______________
    0011 1100