Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Tìm giá trị bit thứ k trong biểu diễn nhị phân trong C++


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