题目描述:
输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。
题解:
class Solution
{
public:
int NumberOf1(int n)
{
int count = 0;
int val = 0x01;
while(val != 0)
{
if(val & n) ++count;
val <<= 1;
}
return count;
}
};
解题思路:
初始化一个1,从右向左移位,与目标数相与,统计二进制中1的个数。