<个人笔记>位运算
常用操作:
1.n的二进制表示中第 k 位进制是几:
操作如下:
(1)先把第 k 位移到最后一位:
(2)看个位是几 k & 1
2.lowbit函数:返回 x 的最后一位1
例如:
当 x = 1010 则 lowbit ( x ) = 10
当 x = 1010000 则 lowbit ( x ) = 10000
int lowbit(int x){
return x & -x;
}
lowbit 函数常见作用:
求 x 的二进制中有多少个1
例题
给定一个长度为 n 的数列,请你求出数列中每个数的二进制表示中 1 的个数。
#include<iostream>
using namespace std;
int lowbit(int x){
return x&(-x);
}
int main(){
int n;
cin >> n;
while(n--){
int x;
cin >> x;
int res = 0;
while(x)
{
x -= lowbit(x);
res++;
}
cout << res << ' ';
}
}