用 Python 檢驗兩個數字是否僅在一位元位置上有所不同
假設我們有兩個數字 x 和 y。我們必須檢查這兩個數字是否僅在一個位元位置上不同。
因此,如果輸入如下 x = 25 y = 17,則輸出將為 True,因為 x = 11001(二進位制)且 y = 10001。僅有一個位元位置不同。
要解決這個問題,我們將遵循以下步驟 -
- z = x XOR y
- 如果 z 中的設定位元數為 1,則
- 返回 True
- 返回 False
讓我們看以下實現以獲得更好的理解 -
示例程式碼
def bit_count(n): count = 0 while n: count += n & 1 n >>= 1 return count def solve(x, y): return bit_count(x ^ y) == 1 x = 25 y = 17 print(solve(x, y))
輸入
25,17
輸出
True
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP