#include "stdio.h"
int count_one_bits(unsigned int value)
{
  int count=0;
  while(value)
  {
  if(value%2==1)
  {
  count++;
  }
  value=value/2;
  }
  return count;
}
int main()
{
unsigned int num=0;
int ret=0;
scanf("%d",&num);
ret=count_one_bits(num);
printf("count=%d\n",ret);
return 0;
}

优化:

#include "stdio.h"
int main()
{
 int num=15;
 int count=0;
 while(num)
 {
  if(num%2==1)
  {
   count++;
  } 
  
  num=num/2;
 }
 printf("%d\n",count);
 system("pause");
}

输入15,得出结果count=4