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時,該位的結果...