[align=center]
System.out.println(0x01 | 2);
     System.out.println(0x01 | 1);
     System.out.println(0x01 | 0);
    
     System.out.println(0x01 & 2);
     System.out.println(0x01 & 1);
     System.out.println(0x01 & 0);
    
     System.out.println(0x01 >> 2);
     System.out.println(0x01 >> 1);
     System.out.println(0x01 >> 0);
    
     System.out.println(0x01 << 2);
     System.out.println(0x01 << 1);
     System.out.println(0x01 << 0);
[/align]结果是怎么运算得到的值呢。

解决方案 »

  1.   

    |:位或
    &:位与
    >>:右位移
    <<:左位移
      

  2.   

    http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html
     还有这个比较详细http://vipan.com/htdocs/bitwisehelp.html
      

  3.   

    这是java基础啊
    |:按位或,&:按位与,<<:左移位<<:左位移 
    这些运算都是以2进制的形式运算的
    |运算规则两个数转成2进制同样位置上只要有一个为1的就变成1。
    例如楼主的0x01|2两个数的2进制形式就是
    0000 0001|0000 0011按照规则运算后就是11转成10进制就是3
    &运算规则两个数转成2进制同样位置上只要有一个为0的就变成0必须两个都为1的变成1。
    例如楼主的0x01&2两个数的2进制形式就是
    0000 0001|0000 0011按照规则运算后就是0000 0001转成10进制就是1
    <<n运算规则将这个数转换成2进制数向左移动n位低位补0
    例如楼主的0x01 << 2也就是0000 0001向左移两位补0得0000 0100转成10进制就是4
    >>n运算规则将这个数转成2进制数向右一维高位补0
    例如楼主的0x01 >> 2也就是0000 0001向右移两位补0得0000 0000转成10进制就是0
      

  4.   

    谢谢大家~8L解释的比较明白。感谢ing