Python位运算符:将 int 长整型数据看做二进制进行计算,主要是将前面的数和后面的数的对应位置上的数字 0,1 进行判断。
& 按位与:如果对应位置上的两个数都为 1,那么得到的该结果的该位置上也为 1 。其他情况都为 0。
| 按位或:如果对应位置上的两个数有一个为 1 或都为 1,则得到的该结果的该位置上也为 1 。其他情况都为 0。
^ 按位异或:如果对应位置上的两个数为 0 和 1 或 1 和 0,则得到的该结果的该位置上也为 1 。其他情况都为 0。
~ 按位取反:如果~后面为正数或 0,则结果为-(数+1),
如果后面的数为负数,则结果为-(负数(带符号)+1)。
<< 左移运算符:将前面的数乘以 2 的(后面的数) 次幂。
>> 右移运算符:将前面的数除以 2 的(后面的数) 次幂。
#查看二进制 a = 2 b = 3 print(bin(a)) # 0b10 1*2的1次 + 0*2的0次 print(bin(b)) # 0b11 1*2的1次 + 1*2的0次 # & 按位与:如果对应位置上的两个数都为 1,那么得到的该结果的该位置上也为 1 。其他情况都为 0。 print(a & b) # 0b1 为与的结果 # | 按位或:如果对应位置上的两个数有一个为 1 或都为 1,则得到的该结果的该位置上也为 1 。其他情况都为 0。 print(a | b) # 0b11 为或的结果 # ^ 按位异或:如果对应位置上的两个数为 0 和 1 或 1 和 0,则得到的该结果的该位置上也为 1 。其他情况都为 0。 print(a ^ b) # 0b01 为异或的结果 # ~ 按位取反:如果后面的为正数,则结果为-(正数+1) print(~2) # -3 print(~(-5)) # 4 # << 左移运算符:将前面的数乘以 2 的(后面的数)次幂 print(2<<3) # 16 2 *2*2*2 # >> 右移运算符:将前面的数除以 2 的(后面的数)次幂 print(16>>2) # 4
2020-02-05
来源:https://www.cnblogs.com/hany-postq473111315/p/12262990.html