在 Python 中檢查兩個數字是否互為補碼
假設我們有兩個數字 x 和 y。我們需要檢查這兩個數字中是否有一個是另一個的 1 的補碼。我們都知道二進位制數的 1 的補碼是將所有位從 0 翻轉到 1 或從 1 翻轉到 0。
因此,如果輸入類似於 x = 9,y = 6,則輸出將為 True,因為二進位制表示形式為 x = 1001 和 y = 0110,它們互為補碼。
為了解決這個問題,我們將遵循以下步驟:
- z = x XOR y
- 當 z 中的所有位都被設定為 1 時返回 True,否則返回 False
示例
讓我們看看以下實現以更好地理解:
def all_one(n): if n == 0: return False; if ((n + 1) & n) == 0: return True return False def solve(x, y): return all_one(x ^ y) x = 9 y = 6 print(solve(x, y))
輸入
9, 6
輸出
True
廣告