在二进制表示中查找在 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
广告