引言
本文主要介紹位運算子,實際上Python有以下7類運算子:
[賦值運算子]、[比較運算子]、[算術運算子]、[邏輯運算子]、[身份運算子]、[成員運算子]、[位運算子]
位運算子
按位運算子是把數字看做二進位制來運算的,位運算子分兩部分:1.位邏輯運算子 2.位移運算子
在二進位制中1
通常為 True,0
通常為 False
位邏輯運算子包括
與 | 或 | 異或 | 取反 |
---|---|---|---|
& | | | ^ | ~ |
位移運算子包括
左移 | 右移 |
---|---|
<< | >> |
位邏輯運算子
二進位制中
1
代表 True,0
代表 False
&
與運算子,兩數為 True 時結果為 True,否則為 False|
或運算子,兩數只要有一個為True,結果就為True,否則為False^
異或運算子,當兩數不一致時,結果為 True,兩數一致時結果為 False~
取反運算子,對二進位制進行取反,即1
取反為0
,0
取反為1
# 二進位制取反 a = 12 # 1100 print( ~a ) # 1100 + 1 = 1101 # 執行結果:-13 ,對應的二進位制碼:-1101
位移運算子
指定二進位制碼向左邊或右邊移動若干位
<<
按位左移運算子,二進位制碼向左移動 N 位,左移多少位右邊就補多少個0# 按位左移 a = 12 # 12,對應的二進位制碼:1100 print( a << 3 ) # 執行結果:96,對應的二進位制碼:1100000
>>
按位右移運算子,二進位制碼向右移動 N 位,右邊溢位丟棄,右移多少位左邊就補多少個0# 按位右移 a = 12 # 12,對應的二進位制碼:1100 print( a >> 1 ) # 執行結果:6 ,對應的二進位制碼:110