1. 按位与(&)
如果两个位都是1,则结果为1
否则结果为0
示例:5&2
00000101 (5的二进制)
&
00000010 (2的二进制)
____________
00000000 (5&2结果二进制,10进制结果为0)
2. 按位或(|)
如果两个位至少有一个是1,则结果为1
否则结果为0
示例:5|2
00000101 (5的二进制)
&
00000010 (2的二进制)
___________
00000111 (5|2结果二进制,10进制结果为7)
3. 按位异或(^)
如果两个位不相同,则结果为1
否则结果为0
示例:5^2
00000101 (5的二进制)
^
00000010 (2的二进制)
____________
00000111 (5^2结果二进制,10进制结果为7)
4.按位非(~)
如果当前位为1,则结果为0
否则结果为1
示例:~5
00000101 (5的二进制)
~
___________
111111010 (~5结果二进制,10进制结果为-6,这块结果为负数,需要注意)
5. 左移(<<)
把位向左移动两位,即最右边补两个0
示例:5<<2
00000101 (5的二进制)
<<2 (向左移动2位)
0000010100
______________
00010100 (5<<2结果二进制,10进制结果为20)
6. 右移(>>)
把位向右移动两位,即最左边边补两个0
示例:5>>2
00000101 (5的二进制)
>>2 (向右移动2位)
0000000101
______________
00000001 (5>>2结果二进制,10进制结果为1)