python位運算子詳細介紹

2022-05-29 03:09:19 字數 1764 閱讀 7782

a=60b=13

#10進製轉換成二進位制字串

a_bin=bin(a).replace("

0b",""

)b_bin=bin(b).replace("

0b",""

)print(a_bin) #

00111100

print(b_bin) #

00001101

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

print(a&b)#

結果為12

#00111100

#00001101

#結果00001100

print(int("

00001100

",base=2)) #

結果為12,和a&b相同

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

print(a|b)#

結果為61

#00111100

#00001101

#結果00111101

print(int("

00111101

",base=2)) #

結果為61,和a|b相同

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

print(a^b)#

結果為49

#00111100

#00001101

#結果00110001

print(int("

00110001

",base=2)) #

結果為49,和a^b相同

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

print(~b)#

結果為-14

#00001101

#結果11110010

print(int("

11110010

",base=2)) #

結果為242,和~b怎麼不相同

#由於在計算機系統中,數值一律用補碼來表示和儲存。

#原因在於,使用補碼,可以將符號位和數值域統一處理;同時,加法和減法也可以統一處理。

#另外,求負整數的補碼,將其對應正數二進位制原碼表示所有位取反(包括符號位,0變1,1變0)後加1

#(0)0011 1101,正數補碼

#(1)1100 0010,負數補碼

#負數原碼到補碼的轉換過程:

#(1)數值部分先減一:11110001

#(2)數值部分取反:00001110

print(-int("

00001110

",base=2)) #

結果為-14,和~b相同

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

print(b<<2)#

結果為52

#00001101

#結果00110100

print(int("

00110100

",base=2)) #

結果為52,和b<<2相同

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

print(b>>2)#

結果為3

#00001101

#結果00000011

print(int("

00000011

",base=2)) #

結果為3,和b>>2相同

詳細介紹Python語言中的按位運算子

按位運算子是把數字看作二進位制來進行計算的。python中的按位運算法則如下 按位與 bitwise and of x and y ujyjdemlic 舉例 5 3 1 解釋 101 11 相同位僅為個位1 故結果為 1 按位或 bitwise or of x and y 舉例 5 3 7 解釋 ...

位運算子的介紹

前面的各種運算都是以位元組為最基本存貯單元進行操作的。但在很多系統程式中常常要求再位遺跡進行運算或者處理。c語言提供了6種位運算子 按位進行與運算 按位進行或運算 按位進行異或運算 按位進行取反運算 按位進行左移 按位進行右移 注意只有 是單目運算子 只需乙個運算元 其他的都是雙目運算子 需要2個運...

python運算子 之位運算子

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