题目描述
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
分类:数学
分类:数学
解法1:对于某个数n,n与(n-1)取与运算,可以消除最后一个1
public class Solution {
public int NumberOf1(int n) {
int count = 0;
while(n!=0){
n=(n&(n-1));
count++;
}
return count;
}
}
int BitCount1(unsigned int n)
{
unsigned int c =0 ; // 计数器
for (c =0; n; n >>=1) // 循环移位
c += n &1 ; // 如果当前位是1,则计数器加1
return c ;
}