📅  最后修改于: 2023-12-03 15:40:35.366000             🧑  作者: Mango
在 C++ 中,我们可以使用位运算来检查一个数的二进制表示的某一位是否为 1。如果我们需要检查一个数的第 K 位是否为 1,可以使用以下代码:
bool isKthBitSet(int n, int k) {
return (n >> (k - 1)) & 1;
}
其中,n 是需要检查的数,k 是需要检查的二进制位数。这个函数会先将数 n 右移 k - 1 位,这样数字的第 k 位就会移动到最低位,我们只需要检查最低位是否为 1 即可。
示例:
int main() {
int n = 5; //二进制表示为 101
int k = 3;
if (isKthBitSet(n, k)) {
std::cout << "第" << k << "位为1" << std::endl;
}
else {
std::cout << "第" << k << "位为0" << std::endl;
}
return 0;
}
输出:
第3位为1
使用位运算检查一个数的二进制表示的某一位是否为 1 是很常见的操作,尤其是在位操作题目中。因此,作为一名程序员,我们需要掌握这个知识点,写出简洁高效的代码。