题目描述
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
解题思路:负数用补码表示,就不用在乎正数和负数了。直接位运算来计算1的数量。
class Solution {
public:
int NumberOf1(int n) {
unsigned int flag=1;
int count=0;
int result=0;
while(flag)
{
result=n&flag;
if(result)
++count;
flag=flag<<1;
}
return count;
}
};