Python位運算子

2021-09-02 22:48:33 字數 1397 閱讀 7373

按位運算子是把數字看作二進位制來進行計算的。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

運算子

描述例項

&按位與運算子:參與運算的兩個值,如果兩個相應位都為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

(~a ) 輸出結果 -61 ,二進位制解釋: 1100 0011

<<

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

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

>>

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

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

以下例項演示了python所有位運算子的操作:

#!/usr/bin/python # -*- coding: utf-8 -*- 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位運算子 python的位運算子是把數字看作二進位制來進行計算的。按位與 如果兩個二進位都為1,則該位結果為1,否則為0 按位或 只要乙個為1,則為1,否則為0 按位異或 兩個二進位相異為為1 即兩個二進位要相反 否則為0 取反 對資料的每個二進位制位取反,即把1變0,把0變1 左移動 ...

Python 位運算子

位運算子是對二進位制數進行操作。在 python 中,位運算的過程為 輸入數值 原碼 補碼 位運算 補碼 原碼 顯示數值。我們用位運算子對數值進行位運算,實際上是對該數值的補碼進行位運算。位運算的結果仍然是補碼,顯示該數值時需系統會先轉化為原碼,然後得出對應的數值。輸出結果為 10 解釋 0b011...