Computer >> Máy Tính >  >> Lập trình >> Python

Kiểm tra xem hai số chỉ khác nhau ở vị trí một bit trong Python hay không

Giả sử chúng ta có hai số x và y. Chúng tôi phải kiểm tra xem hai số này có khác nhau ở vị trí một bit hay không.

Vì vậy, nếu đầu vào giống như x =25 y =17, thì đầu ra sẽ là True vì x =11001 trong hệ nhị phân và y =10001. Chỉ khác vị trí một bit.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • z =x XOR y
  • nếu số bit đặt trong z là 1, thì
    • trả về True
  • trả về Sai

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Mã mẫu

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))

Đầu vào

25,17

Đầu ra

True