Python 位運算子

2021-10-12 22:59:09 字數 1548 閱讀 3134

按位運算子是把數字看作二進位制來進行計算的。

下表中變數 a 為 60,b 為 13,二進位制格式如下:

a = 0011 1100

b = 0000 1101

-----------------

a&b = 0000 1100

a|b = 0011 1101

a^b = 0011 0001

~a = 1100 0011

運算子

描述例項

&按位與運算子:參與運算的兩個值,如果兩個相應位都為1,則該位的結果為1,否則為0

(a & b) 輸出結果 12 ,二進位制解釋: 0000 1100

|按位或運算子:只要對應的二個二進位有乙個為1時,結果位就為1。

(a | b) 輸出結果 61 ,二進位制解釋: 0011 1101

^按位異或運算子:當兩對應的二進位相異時,結果為1

(a ^ b) 輸出結果 49 ,二進位制解釋: 0011 0001

~按位取反運算子:對資料的每個二進位制位取反,即把1變為0,把0變為1 。~x 類似於 -x-1

(~a ) 輸出結果 -61 ,二進位制解釋: 1100 0011,在乙個有符號二進位制數的補碼形式。

<<

左移動運算子:運算數的各二進位全部左移若干位,由 << 右邊的數字指定了移動的位數,高位丟棄,低位補0。

a << 2 輸出結果 240 ,二進位制解釋: 1111 0000

>>

右移動運算子:把">>"左邊的運算數的各二進位全部右移若干位,>> 右邊的數字指定了移動的位數

a >> 2 輸出結果 15 ,二進位制解釋: 0000 1111

a = 60            # 60 = 0011 1100 

b = 13 # 13 = 0000 1101

c = 0

c = a & b; # 12 = 0000 1100

print "1 - c 的值為:", c

c = a | b; # 61 = 0011 1101

print "2 - c 的值為:", c

c = a ^ b; # 49 = 0011 0001

print "3 - c 的值為:", c

c = ~a; # -61 = 1100 0011

print "4 - c 的值為:", c

c = a << 2; # 240 = 1111 0000

print "5 - c 的值為:", c

c = a >> 2; # 15 = 0000 1111

print "6 - c 的值為:", c

以上例項輸出結果:

1 - c 的值為: 12

2 - c 的值為: 61

3 - c 的值為: 49

4 - c 的值為: -61

5 - c 的值為: 240

6 - c 的值為: 15

python運算子 之位運算子

支援的資料型別有數字 集合 set 僅支援 交集 並集 不同集 其他型別都不支援位運算。按位運算子是把數字看作二進位制來計算的。位運算子作用於所有的位上,並且按位運算。python中按位運算法則如下 假設a 60,b 13 操作符描述例項 按位與運算子,當且僅當兩個運算元的某一位都非0時,該位的結果...

Python位運算子

按位運算子是把數字看作二進位制來進行計算的。python中的按位運算法則如下 下表中變數 a 為 60,b 為 13,二進位制格式如下 a 0011 1100 b 0000 1101 a b 0000 1100 a b 0011 1101 a b 0011 0001 a 1100 0011運算子 描...

python位運算子

python位運算子 python的位運算子是把數字看作二進位制來進行計算的。按位與 如果兩個二進位都為1,則該位結果為1,否則為0 按位或 只要乙個為1,則為1,否則為0 按位異或 兩個二進位相異為為1 即兩個二進位要相反 否則為0 取反 對資料的每個二進位制位取反,即把1變0,把0變1 左移動 ...