题目描述
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
int NumberOf1(int n) {
int count = 0;
if(n == 0) return 0;
if(n == 0x80000000) return 1;
if(n < 0){
n = n&0x7FFFFFFF;
count++;
}
while (n) {
if(n&1) { count++;}
n>>=1;
}
return count;
}