--- title: "n--k&1" created: 2025-11-28 tags: - 算法 --- # n>>k&1 ## 题目 无 ## 思路分析 穿插在一些大问题中 按位处理二进制数 可用于求一个数的二进制表示的每一位为多少 以及某二进制数的第k位为多少 先把相求的数右移到最右边 再使用&1运算求到最右的数为多少 根据这个性质 就可以 用循环求得每个位为多少 前提是知道有多少位 比如 10——1010 4位 那么就for(int i=3;i>=0;i--) n>>i&1 这样就能求到每一位的数为多少(或许可以理解成进制转换) 若要求第k位 则直接 n>>k&1 ## 代码实现 ```cpp #include using namespace std; int main() { int x=10; for(int i=4;i>0;i--) cout<<(x>>i&1); return 0; } ``` ## 同类题型 ## 视频讲解 --- ⬅️ [[2-Learning/02-算法/02-听课板子/基础算法/位运算|位运算]] 🏠 [[00-听课板子]] ➡️ [[lowbit(x)|lowbit(x)]]