Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình Python xóa bit 1 ở vị trí cuối cùng (rightmost set bit)

Để xóa bit 1 ở vị trí cuối cùng (bit 1 thấp nhất) của một số nguyên, ta sử dụng phép AND giữa số đó và số trừ đi 1.

Ví dụ

def clear_rightmost_set_bit(n):
    return n & (n - 1)

val = 6  # nhị phân: 110
print("Giá trị n:", val)
print("Sau khi xóa bit 1 cuối cùng:", clear_rightmost_set_bit(val))  # 100 -> 4

Kết quả

Giá trị n: 6
Sau khi xóa bit 1 cuối cùng: 4

Giải thích

  • Biểu diễn nhị phân của 6 là 110.
  • n - 1 = 5 (101).
  • Phép n & (n - 1) = 110 & 101 = 100 (4).
  • Kỹ thuật này thường dùng trong thuật toán đếm bit 1 (Brian Kernighan's algorithm).