Trong bài toán này, chúng ta được cho hai giá trị n và k. Nhiệm vụ là tìm giá trị bit thứ k trong biểu diễn nhị phân.
Ví dụ minh họa
Input: n = 5, k = 2 Output: 0
Giải thích: Nhị phân của 5 = 0101. Bit thứ 2 từ phải (LSB) là 0.
Phương pháp giải
Thực hiện phép AND bitwise giữa n và số có chỉ bit thứ k được set (1 << (k-1)), sau đó dịch phải (k-1) vị trí để lấy giá trị bit.
Ví dụ chương trình
#include <iostream>
using namespace std;
void findKBitVal(int n, int k){
cout << ((n & (1 << (k - 1))) >> (k - 1));
}
int main(){
int n = 29, k = 4;
cout << "Giá trị bit thứ k trong nhị phân của số là ";
findKBitVal(n, k);
return 0;
}
Kết quả
Giá trị bit thứ k trong nhị phân của số là 1