思路+代码+注释:
public int oneNum(int n)
{
/*
思路:使用count记录1的个数
特性:一个数和该数-1做与运算可以消除最低位的1
拿数和该数-1做与运算,每次消除最低位的1count++,当所有1被消除时该数变为0
*/
int count=0;
while (n!=0)
{
n=n&(n-1);
count++;
}
return count;
}