Giả sử chúng ta có một số n và một giá trị khác k. Chúng ta phải kiểm tra xem bit thứ k trong n được đặt (1) hay không đặt (0). Giá trị của k được xem xét từ phía bên phải.
Vì vậy, nếu đầu vào là n =18 k =2, thì đầu ra sẽ được Đặt dưới dạng nhị phân của 18 là 10010 vì vậy bit cuối cùng thứ hai là 1 (tập hợp).
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- temp:=n sau khi dịch chuyển các bit (k - 1) lần sang bên phải
- nếu tạm thời VÀ 1 là 1, thì
- trả về "Đặt"
- trả về "Chưa đặt"
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
Mã mẫu
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
Đầu ra
Set