解法一:
#include<stdio.h>
#include<stdlib.h>
int count_one_bits(unsigned value)
{
int ones;
for (ones = 0; value != 0; value = value >> 1)
{
if (value % 2 != 0)
{
ones = ones + 1;
}
}
return ones;
}
main()
{
int a = 1123;
int ret = 0;
ret=count_one_bits(a);
printf( "%d", ret);
system( "pause");
return 0;
}
解法二:
#include<stdio.h>
#include<stdlib.h>
int count_ones_bit(unsigned value)
{
int ones;
for (ones = 0; value != 0; value >>=1)
{
if ((value & 1) != 0)
{
ones += 1;
}
}
return ones;
}
int main()
{
int n1 = 0;
int ret = 0;
scanf_s( "%d",&n1);
ret = count_ones_bit(n1);
printf( "%d", ret);
system( "pause");
return 0;
}
原文:http://10796819.blog.51cto.com/10786819/1716550