主要功能是,调用函数后,返回二进制整数中1的个数。
eg:
十进制:1234
, 其二进制为:10011010010
则返回:5
。
十进制:99999
,其二进制为:11000011010011111
,则返回:10
。
源码:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int func(int x)
{
int n=0;
while(x)
{
n++;
x = x & (x-1);
}
return n;
}
int main(int argc, char **argv)
{
if(2 != argc)
{
printf("Param Num Not Two ! \n");
return -1;
}
int param;
param = atoi(argv[1]);
int ret;
ret = func(param);
printf("ret :%d \n", ret);
return 0;
}
运行测试:
输入 88888
返回 9
: