11.位运算
2020-02-12 本文已影响0人
Tsukinousag
原题链接

给定一个长度为n的数列,请你求出数列中每个数的二进制表示中1的个数。
- lowbit运算:原码与补码相与
define lowbit(i)((i)&(-i))
#define lowbit(i)((i)&(-i))
int n;
int main()
{
scanf("%d",&n);
while(n--)
{
int x,res=0;
scanf("%d",&x);
while(x)
{
x-=lowbit(x);
res++;
}
cout<<res<<" ";
}
return 0;
}