输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。

 


正数负数输入都可以:

二进制的1的个数_补码


class Solution {
public:
//在计算机的世界里,正负数是用补码形式存在的,正数的补码是原码,负数的补码是对应正数的反码加+1;
int NumberOf1(int n) {
if(n==0)return 0;
unsigned int flag=1;
int count=0;
while(flag)
{
if(n&flag)//与之后给的值,不为1,则进入循环
count++;
flag<<=1;
}
return count;

}
};