逻辑运算与位运算
逻辑运算 (与,或,非)
and
or
not
逻辑位运算
& 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0
十进制: 2 & 2
二进制位: 128 64 32 16 8 4 2 1
2 = 0 0 0 0 0 0 1 0
2 = 0 0 0 0 0 0 1 0
结果: 0 0 0 0 0 0 1 0
十进制: 2 & 0
二进制位: 128 64 32 16 8 4 2 1
2 = 0 0 0 0 0 0 1 0
0 = 0 0 0 0 0 0 0 0
结果: 0 0 0 0 0 0 0 0
| 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。
先看两个事例:
>>> 1|1
1
>>> 2|1
3
1|0 结果等于 1
二进制位: 128 64 32 16 8 4 2 1
1 = 0 0 0 0 0 0 0 1
1 = 0 0 0 0 0 0 0 0
结果: 0 0 0 0 0 0 0 1
2|1 结果等于 3
二进制位: 128 64 32 16 8 4 2 1
1 = 0 0 0 0 0 0 1 0
1 = 0 0 0 0 0 0 0 1
结果: 0 0 0 0 0 0 1 1
~ 按位取反运算符:取反减1
~1 结果等于 -2
正数部分 0 负数部分
二进制位: 128 64 32 16 8 4 2 1 0 -1 -2 -4...
1 = 0 0 0 0 0 0 0 1 0 0 0 0...
取反: 0 0 0 0 0 0 0 0 0 1 0 0...
减 1: 0 0 0 0 0 0 0 0 0 0 1 0...
结果: 0 0 0 0 0 0 0 0 0 0 1 0...
浙公网安备 33010602011771号