n>>k&1

题目 无

思路分析

穿插在一些大问题中 按位处理二进制数

可用于求一个数的二进制表示的每一位为多少

以及某二进制数的第k位为多少

先把相求的数右移到最右边 再使用&1运算求到最右的数为多少

根据这个性质 就可以

用循环求得每个位为多少

前提是知道有多少位

比如 10——1010

4位

那么就for(int i=3;i>=0;i--)

n>>i&1

这样就能求到每一位的数为多少(或许可以理解成进制转换)

若要求第k位

则直接 n>>k&1

代码实现

#include<bits/stdc++.h>

using namespace std;

int main()

{

    int x=10;

    for(int i=4;i>0;i--)

        cout<<(x>>i&1);

    return 0;

}

同类题型

视频讲解


⬅️ 位运算 🏠 00-听课板子 ➡️ lowbit(x)