位运算包含运算:与、或、异或、左移和右移。
面试题10:二进制中1的个数
//题目描述
//
//输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
#include<iostream>
using namespace std;
class Solution {
public:
int NumberOf1(int n) {
int cnt=0;
unsigned int val=(unsigned int)n;
while(val){
if(val&1)cnt++;
val>>=1;
}
return cnt;
}
};
int main(){
Solution test=Solution();
cout<<test.NumberOf1(-1);
system("pause");
return 0;
}