位运算符 | 说明 |
&(与) | 两个操作数中位都为1,结果才为1,否则结果为0 |
|(或) | 两个位只要有一个为1,那么结果就是1,否则就为0 |
^(异或) | 两个操作数的位中,相同则结果为0,不同则结果为1 |
~(非) | 如果位为0,结果是1,如果位为1,结果是0 |
<< | 左移运算符 |
>> | 右移运算符 |
例子:
A = 0011 1100
B = 0000 1101
进行与运算:
A&B = 0000 1100
进行或运算:
A|B = 0011 1101
进行异或运算:
A^B = 0011 0001
进行非运算:
~A = 1100 0011
~B = 1111 0010
当我们要显示2*8=16时,我们可以这样表达:2*(2*2*2)=16
在二进制中我们通常这样表示:
二进制的值 | 十进制的值 |
0000 0000 | 0 |
0000 0001 | 1 |
0000 0010 | 2 |
0000 0011 | 3 |
0000 0100 | 4 |
0000 1000 | 8 |
0001 0000 | 16 |
从上面的表中,我们可以发现当二进制中的“ 1 ”往左移动一位时,十进制的值乘了“ 2 ”。
2到16的过程中,“ 1 ”往左移动了三位。
故可以用以下位运算符表示:
2<<3