c语言中统计二进制中1的个数 题目内容:写一个函数返回参数二进制中1的个数
时间: 2024-10-21 18:12:05 浏览: 58
课程设计-统计一个数二进制表示中1的个数
在C语言中,可以编写一个函数来计算整型变量的二进制表示中1的个数。最常用的算法是通过位运算来实现,这里我们可以借助异或(XOR)操作和自减操作。以下是简单的函数实现:
```c
#include <stdio.h>
int countBits(int num) {
int count = 0;
while (num != 0) {
count++; // 如果num的最低位是1,则count++
num &= num - 1; // 将num的最低位变为0,即移除最低位的1
}
return count;
}
int main() {
int input;
printf("请输入一个整数: ");
scanf("%d", &input);
printf("该整数的二进制表示中1的个数为: %d\n", countBits(input));
return 0;
}
```
这个`countBits`函数会不断将输入的数字`num`与它自身减一的按位与结果进行比较,直到`num`变为0。在这个过程中,每次操作都会清除掉`num`最低位的一个1,因此计数器`count`就记录了所有1的个数。
阅读全文