给定一个十进制整数n,求二进制中1的个数的C语言代码
时间: 2024-10-21 15:14:14 浏览: 3
你可以使用C语言中的位运算来解决这个问题。这里是一个简单的代码片段,它通过计算`n`与`(n - 1)`按位与的结果中最高位上的1的数量来确定二进制表示中的1的个数:
```c
#include <stdio.h>
int countBits(int n) {
int count = 0;
while (n > 0) {
if (n & 1) { // 如果最低位是1
count++;
}
n >>= 1; // 右移一位,去掉最低位
}
return count;
}
int main() {
int n;
printf("请输入一个十进制整数: ");
scanf("%d", &n);
printf("该数二进制表示中有 %d 个1.\n", countBits(n));
return 0;
}
```
在这个代码中,`countBits`函数通过不断地将`n`右移(相当于除以2取余),直到`n`变为0,同时计数每次`n`与1做按位与操作时结果为1的情况。当`n`最后变成0时,`count`就是1的个数。
阅读全文