首先我们利用第一种方法,在这我们可以知道,我们从二进制最小位依次往上看。
例如:5的二进制是101,如果它的二进制最小位上是有数值得,这样我们就对他++,否则,我们就进行移位操作,这部操作当然也可以用除二来代替。
代码如下:
//写一个函数返回参数的二进制中1的个数
#include<stdio.h>
#include<stdlib.h>
int count_one_bits(unsigned int value)
{
int count = 0;
while (value != 0)
{
if (value % 2 == 1)
{
count++;
}
value = value >>1;
}
return count;
}
int main()
{
int num;
int ret;
printf("请输入一个大于0的数\n