📜  检查是否设置了第 K 位 c++ (1)

📅  最后修改于: 2023-12-03 15:40:35.366000             🧑  作者: Mango

检查是否设置了第 K 位

在 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 是很常见的操作,尤其是在位操作题目中。因此,作为一名程序员,我们需要掌握这个知识点,写出简洁高效的代码。