11.位运算

原题链接


给定一个长度为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<

你可能感兴趣的:(11.位运算)