一、什麼是Python位運算符
在計算機中,數據是以二進位形式存儲和處理的。Python提供了位運算符,這些運算符可以對二進位位進行操作。其中,&、|、^分別表示按位與、按位或、按位異或,~表示按位取反,<>表示左位移和右位移。
位運算符的優先順序比較低,通常需要使用括弧明確計算優先順序。
a = 0b1010 b = 0b1100 c = a & b d = a | b e = a ^ b f = ~a g = b <> 2 print(c, d, e, f, g, h) # 輸出 0b1000 0b1110 0b0110 -0b1011 0b110000 0b0011
二、Python位運算符的用途
位運算符在很多場景下都有很好的應用。比如說:
1. 快速判斷奇偶性
對於一個數n,如果n & 1 = 0,說明n是偶數;如果n & 1 = 1,說明n是奇數。因為二進位數的最後一位為1表示奇數,為0表示偶數。
def is_even(n): return n & 1 == 0 print(is_even(2)) # 輸出 True print(is_even(3)) # 輸出 False
2. 快速交換兩個數
通過位運算符可以不使用臨時變數,而快速交換兩個變數的值。
a, b = 1, 2 a ^= b b ^= a a ^= b print(a, b) # 輸出 2 1
3. 快速判斷2的冪次方
如果一個數n是2的冪次方,那麼它的二進位表示中只有一位為1。
def is_power_of_2(n): return n & (n-1) == 0 and n != 0 print(is_power_of_2(16)) # 輸出 True print(is_power_of_2(12)) # 輸出 False
三、Python位運算符計算器的實現
我們可以藉助Python的位運算符來實現一個計算二進位數據的計算器。
該計算器將支持輸入兩個二進位數,並對它們進行位運算。
def binary_calculator(): a = input("請輸入第一個二進位數:") b = input("請輸入第二個二進位數:") while True: print("請選擇位運算符:") print("1. & (按位與)") print("2. | (按位或)") print("3. ^ (按位異或)") print("4. ~ (按位取反)") print("5. <> (右位移)") choice = input("請輸入您的選擇:") if choice == "1": result = int(a, 2) & int(b, 2) elif choice == "2": result = int(a, 2) | int(b, 2) elif choice == "3": result = int(a, 2) ^ int(b, 2) elif choice == "4": result = ~int(a, 2) elif choice == "5": result = int(b, 2) <> 2 else: print("無效選擇!") continue print("結果為:", bin(result)[2:]) break binary_calculator()
四、總結
Python的位運算符提供了快速操作二進位數據的能力。這些運算符在很多場景下都有很好的應用,比如判斷奇偶性、交換變數值、判斷2的冪次方等。我們還通過實現一個計算二進位數據的計算器來進一步理解了位運算符的應用。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/190744.html