&(按位与)
例子:a = 3 & 5
3的二进制为:0011
5的二进制为:0101
&的意思为两边都是1才是1,否则为0;
所以a的值为:0001
a = 3 & 5 结果为1;
^ (按位异或)
例子: c = 3 ^ 6
3的二进制为:0011
6的二进制为:0110
^ 的意思为两边都是相同的才是0,否则为1;
所以c的值为:0101
c = 3 ^ 6 结果为5;
| (按位或)
例子:b = 3 | 5
3的二进制为:0011
5的二进制为:0101
| 的意思为两边都是0才是0,否则为1;
所以b的值为:0111
b = 3 | 5 结果为:7;
<< (左移)
例子:c = 7 << 2
7的二进制为:0111
<< 的意思为向左移动;
向左移动2位,后面要补2个0;
c = 0001 1100
c = 7 << 2 结果为:28
>> (右移)
例子:c = 6 >> 2
6的二进制为:0110
>>的意思是是向右移动
向右移动2位,正数前面要补0,负数前面要补1;右边舍弃
c = 0001
c = 6 >> 2 结果为:1