class Solution
{
public:
int NumberOf1(int n)
{
unsigned int _n=n;//转为无符号 否则负数右移一位会补1,死循环
int cnt=0;
while(_n){
cnt+=1&_n;
_n=_n>>1;
}
return cnt;
/*int cnt=0;
bool is_fu=false;
if(n<0)
{
is_fu=true;
n=INT_MAX+n+1;
}
while(n)
{
if(1&n)
cnt++;
n=n>>1;
}
if(is_fu)
return cnt+1;
return cnt;*/
}
};