Computer >> Máy Tính >  >> Lập trình >> C ++

Tìm giá trị của 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ụ của chúng tôi là tìm giá trị của bit thứ k trong biểu diễn nhị phân .

Hãy lấy một ví dụ để hiểu vấn đề,

Input : n= 5, k = 2
Output : 0

Giải thích -

Binary of 5 = 0101
Second LSB bit is 0.

Phương pháp tiếp cận giải pháp

Một giải pháp cho vấn đề là thực hiện theo chiều bit AND của phép chuyển đổi nhị phân của số N thành một số không đặt tất cả các bit và một bit được đặt ở vị trí thứ k, để thu được kết quả.

Ví dụ

Chương trình minh họa hoạt động của giải pháp của chúng tôi,

#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<<"The value of kth bit in binary of the number is ";
      findKBitVal(n, k);
      return 0;
}

Đầu ra

The value of kth bit in binary of the number is 1