Để 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).