面试经典题-位操作
设一个64位整型n,各个bit位是1的个数为a个。
比如7,二进制是111,所以a为3。现在给出m个数,求各个a的值。
#include<iostream>
using namespace std;
int cbit(unsigned long long n ){
int counter = 0;
unsigned long long dismark = 1;
for (int c=1;c<=64; c++)
{
if (n&dismark)
++counter;
n >>= 1;
}
return counter;
}
int main(){
int m;
cin>>m;
unsigned long long x ;
for(int i=0;i<m;++i){
cin>>x;
cout<<cbit(x)<<endl;
}
return 0;
}

浙公网安备 33010602011771号