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;
}
💬 评论