题目:实现一个函数,输入一个整数,输出该数二进制表示中1的个数,例如把9表示成二进制1001,有2位是1,。因此如果输入9,该函数的输出为2
规律:把一个整数减去1之后和原来的整数做位与运算,得到的结果相当于是把整数的二进制表示中的最右边的一个1变成0.
int numberof1(int n)
{
int count=0;
while(n)
{
count++;
n=n & (n-1);
}
return count;
}
题目:实现一个函数,输入一个整数,输出该数二进制表示中1的个数,例如把9表示成二进制1001,有2位是1,。因此如果输入9,该函数的输出为2
规律:把一个整数减去1之后和原来的整数做位与运算,得到的结果相当于是把整数的二进制表示中的最右边的一个1变成0.
int numberof1(int n)
{
int count=0;
while(n)
{
count++;
n=n & (n-1);
}
return count;
}