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

Kiểm tra bit tại vị trí k có được set (1) hay unset (0) trong Python

Cho số n và vị trí k (đếm từ phải, bắt đầu 1). Kiểm tra bit thứ k có phải 1 không.

Ví dụ: n=18 (10010), k=2 → bit thứ 2 từ phải là 1 → "Set".

Thuật toán

  • Dịch phải n (k-1) lần: temp = n >> (k-1).
  • Kiểm tra bit thấp nhất: temp & 1.
  • Nếu 1 → "Set", ngược lại "Unset".

Ví dụ code

def solve(n, k):
    temp = n >> (k - 1)
    if temp & 1:
        return "Set"
    return "Unset"

n = 18
k = 2
print(solve(n, k))

Đầu vào

18, 2

Đầu ra

Set