Trong bài toán này, chúng ta được cho hai số n và k. Nhiệm vụ là in ra bit ít quan trọng thứ k (k-th least significant bit) của số n.
Hãy xem ví dụ sau để hiểu rõ vấn đề:
Input: n = 12 , k = 3 Output 1 Giải thích: Xem biểu diễn nhị phân của n: 12 = 1100
Bit ít quan trọng thứ 3 là 1.
Để giải quyết, ta dùng các bit nhị phân của số. Lấy bit thứ k của số. Ta dùng dịch bit: dịch trái số (k-1) lần. Sau đó phép AND giữa số đã dịch và số gốc sẽ cho giá trị bit thứ k.
Ví dụ
Đoạn mã dưới đây minh họa triển khai giải pháp:
#include <bits/stdc++.h> using namespace std; int main() { int N = 12, K = 3; cout<<K<<"th significant bit of "<<N<<" is : "; bool kthLSB = (N & (1 << (K-1))); cout<<kthLSB; return 0; }Kết quả
3th significant bit of 12 is : 1