按位運算符是把數字看作二進制來進行計算的。
運算符 ? ?描述
& ? ?按位與運算符:參與運算的兩個值,如果兩個相應位都為1,則該位的結果為1,否則為0
| ? ?按位或運算符:只要對應的二個二進位有一個為1時,結果位就為1。
^ ? ?按位異或運算符:當兩對應的二進位相異時,結果為1
~ ? ?按位取反運算符:對數據的每個二進制位取反,即把1變為0,把0變為1。~x 類似于 -x-1
<< ? ?左移動運算符:運算數的各二進位全部左移若干位,由"<<"右邊的數指定移動的位數,高位丟棄,低位補0。
>> ? ?右移動運算符:把">>“左邊的運算數的各二進位全部右移若干位,”>>"右邊的數指定移動的位數
a = 1 ? ?二進制:0001
b = 2 ? ? ?二進制:0010
eg:在python解釋器里運行(在終端輸入python)
>>> 1 & 2 # 0001 & 0010 == 0000
0
>>> 1 | 2 # 0001 | 0010 == 0011
3
>>> 1 | 2 # 0001 | 0010 == 0011
3
>>> 1 ^ 2 # 0001 ^ 0010 = 0011
3
>>> ~1 # ~0001 = 1010
-2
>>> 1 << 1 # 0001 << 1 = 0010
2
>>> 1 >> 1 # 0001 >> 1 = 0000
0
在異或中,有如下規律
交換律:A ^ B = B ^ A;
結合律:A ^ (B ^ C) = (A ^ B) ^ C;
恒等律:X ^ 0 = X;
歸零律:X ^ X = 0;
邏輯運算符
Python語言支持邏輯運算符
運算符 ? ?邏輯表達式 ? ?描述
and ? ?x and y ? ?布爾"與" - 如果 x 為 False,x and y 返回 x 的值,否則返回 y 的計算值。
or ? ?x or y ? ?布爾"或" - 如果 x 是 True,它返回 x 的值,否則它返回 y 的計算值。
not ? ?not x ? ?布爾"非" - 如果 x 為 True,返回 False 。如果 x 為 False,它返回 True。
eg:在python解釋器里運行(在終端輸入python)