位运算求整数二进制有几个1

#include
#define mod 10001
using namespace std;
int cnt;
int ANS(int num)
{
    int ans = 0 ;
    for(int i=0;i<32;i++)
    {
        ans += !!(num&(1<<i));
    }
    return ans ;
}
int _ANS(int num){
int ans=0;
for(int i=num;i;i-=i&-i){++ans;}
return ans;
}
int __ANS(int num){
ing ans=0;
while(num){
num=num&(num-1);++ans;
}
}
void er(int n){
 if(!n) return;
 er(n/2);
 cout<<n%2;
 ++cnt;
}
int main(){
 int n;
 while(cin>>n)
    cout<<ANS(n)<<endl;
}

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