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














