二进制中1的个数_c++

#include <bits/stdc++.h>
using namespace std;
long long cmp(long long x)
{
return x&-x;
}
int main()
{
int n;
cin>>n;
while(n--)
{
long long a;
cin>>a;
int con=0;
while(a>0) a-=cmp(a),con++;
cout<<con<<" ";
}
return 0;
}