在二进制表示中查找在 C++ 中的第 k 位


在这个问题中,我们获得了两个值 n 和 k。我们的任务是查找二进制表示中第 k 位的值

让我们举个例子来理解这个问题,

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

说明

Binary of 5 = 0101
Second LSB bit is 0.

解决方案方法

问题的解决方案是将数字 N 的二进制转换与一个所有位未设置且一位设置为第 k 位的数字执行按位 AND,以获得结果。

示例

展示我们的解决方案工作原理的程序,

#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;
}

输出

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

更新日期: 01-Feb-2022

355 次浏览

开启你的事业

通过完成该课程获得认证

开始
广告