题目名称:统计二级制中1的个数
内容:写一个函数返回参数二进制中1的个数
列如:十进制:15 二进制: 00001111 中1的各位为4
第一种方法
int count_one(unsigned int a) {
int count = 0;
while (a) {
if (a % 2 == 1) {
count++;
}
a = a / 2;
}
return count;
}
int main() {
int a = 0;
scanf("%d", &a);
int count=count_one(a);
printf("count=%d", count);
return 0;
}
第二种方法
int count_one(int a) {
int count = 0;
while (a) {
a = a & a - 1;
count++;
}
return count;
}
int main() {
int a = 0;
scanf("%d", &a);
int count=count_one(a);
printf("count=%d", count);
return 0;
}