Python学习之位运算符

python中的位运算符包括如下六种:

& (按位与)
| (按位或)
^ (按位异或)
~ (按位取反)
!<< (左移动)
!>> (右移动)
&(按位与)
将两个二进制数按位进行逻辑与,对应位都为1时则结果为1,否则为0,最后得出结果。

例如,a = 10,二进制数为a = 1010,b = 8,二进制数为b = 1000,按位与的结果为a & b = 1000,换成十进制结果为8。

|(按位或)
将两个二进制数按位进行逻辑或,对应位中有一个为1则结果为1,两个都为0则结果为0,最后得出结果。

例如,a = 12,二进制数为a = 1100,b = 8,二进制数为b = 1000,则其按位或的结果为a | b = 1100,换成十进制结果为12。

^(按位异或)
将两个二进制数按位进行逻辑异或,对应位不同结果为1,相同为0,最后得出结果。

例如,a = 12,二进制数为a = 1100,b = 8,二进制数为b = 1000,则其按位异或的结果为a ^ b = 0100,换成十进制结果为4。

~(按位取反)
将一个二进制数按位进行取反,当前位为1,则取反为0,当前位为0,则取反为1,最后得出结果。

例如,a = 18,二进制数为a = 10010,则其按位取反的结果为~a = 01101,换成十进制结果为13。

<<(左移动)
将一个二进制数进行左移,就是按二进制形式把所有的数字全部向左移动对应的位数,移动时高位舍弃,低位补零。

例如,a = 3,二进制数为a = 0011,则其向左移动两位的结果为a << 2 = 1100,换成十进制结果为12。

(右移动)
将一个二进制数进行右移,就是按二进制形式把所有的数字全部向右移动对应的位数,移动时低位舍弃,高位补符号位。

例如,a = 4,二进制数为a = 0100,则其向右移动两位的结果为a >> 2 = 0001,换成十进制结果为1。

你可能感兴趣的:(Python)