题目描述
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
方法一:
#include <iostream>
using namespace std;
int main(){
int n;
cin>>n;
int sum=0;
for (sum=0;n;++sum){
n&=(n-1);
}
cout<<sum<<endl;
system("pause");
}
方法二:
#include <iostream>
#include <vector>
using namespace std;
int NumberOf1(int n){
unsigned int num=n;
int sum=0;
while(num>0){
if(num%2==1)
sum++;
num=num>>1;
}
return sum;
}
int main(){
cout<<NumberOf1(-1)<<endl;
system("pause");
}