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ó được đặt (1) hay không. 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 =23, k =3, thì đầu ra sẽ là True vì dạng nhị phân của 23 là 10111 nên bit cuối cùng thứ ba là 1 (set).
Để 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ề True
- trả về Sai
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 True return False n = 23 k = 3 print(solve(n, k))
Đầu vào
23, 3
Đầu ra
True