1 Python位運算符有如下幾種
&:按位與:兩位都為1,結果為1,否則為0
|:按位或:只要有一位為1,結果就為1
^:按位異或:兩對應的二進位相異時,結果為1
~: 按位取反,即把1變為0,把0變為1,相當於(-x-1)
<<:左移動運算符:運算數的各二進位全部左移若干位,由 << 右邊的數字指定了移動的位數,高位丟棄,低位補0。
>>:右移動運算符:把">>"左邊的運算數的各二進位全部右移若干位,>> 右邊的數字指定了移動的位數
2 案例
a = 60 # 二進制位 0011 1100
b = 13 # 二進制位 0000 1101
'''
a&b 按位與:兩位都為1,結果為1,否則為0
a 0011 1100
b 0000 1101
二進制結果 0000 1100
十進制結果 12
'''
print(a & b)
'''
a|b 按位或:只要有一位為1,結果就為1
a 0011 1100
b 0000 1101
二進制結果 0011 1101
十進制結果 61
'''
print(a | b)
'''
a^b 按位異或:兩對應的二進位相異時,結果為1
a 0011 1100
b 0000 1101
二進制結果 0011 0001
十進制結果 49
'''
print(a ^ b)
'''
~a 按位取反,即把1變為0,把0變為1,相當於(-x-1)
a 0011 1100
~a 1100 0011
十進制結果 -61
'''
print(~a)
'''
<< 左移動運算符:運算數的各二進位全部左移若干位,由 << 右邊的數字指定了移動的位數,高位丟棄,低位補0
a 0011 1100
a << 2 1111 0000
十進制結果 240
'''
print(a << 2)
'''
>> 右移動運算符:把">>"左邊的運算數的各二進位全部右移若干位,>> 右邊的數字指定了移動的位數
a 0011 1100
a >> 2 0000 1111
十進制結果 15
'''
print(a >> 2)
print(a>>3)
7
print(a>>4) 0000 0011 1100
3
print(a>>5) 0000 0001 1110 0
1
print(a>>6) 0000 0000 1111 00
0
作者:劉sir
鏈接:https://zhuanlan.zhihu.com/p/370167569
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
