求整数二进制表示中比特为1的个数
main
函数部分
#include
int count_ones(int num);
int main(void)
{
int num;
scanf("%d", &num);
printf("%d\n", count_ones(num));
return 0;
}
方法一:
int count_ones(int num)
{
if (num == 0)
return 0;
return count_ones(num & num - 1) + 1;
}
方法二:
int count_ones(int num)
{
int count = 0;
while (num != 0)
{
if (num & 1)
count++;
num = num >> 1;
}
return count;
}