[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]结果是怎么运算得到的值呢。
&:位与
>>:右位移
<<:左位移
还有这个比较详细http://vipan.com/htdocs/bitwisehelp.html
|:按位或,&:按位与,<<:左移位<<:左位移
这些运算都是以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