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