求n中二进制1的个数代码
时间: 2024-11-22 10:34:45 浏览: 5
js代码-200610-二进制中1的个数
在计算机科学中,求一个数字的二进制表示中有多少个1,也称为汉明重量(H hamming weight),通常使用位运算技巧实现,因为这比逐位检查更快。下面是一个用C语言编写的简单函数,使用按位与与移位运算来计算这个值:
```c
unsigned int countBits(unsigned int n) {
unsigned int count = 0;
while (n != 0) {
count += n & 1; // 取最低位的1,如果存在则加1
n >>= 1; // 将n向右移动一位,去掉最低位
}
return count;
}
// 使用例子
int main() {
int n = 123; // 输入一个整数
printf("Number of 1s in binary representation: %u\n", countBits(n));
return 0;
}
```
这个函数通过不断地将输入的数值与1进行按位与运算,并统计结果(非零即1,代表有一位是1),然后将原数值右移一位,直到所有位都被检查过为止。
阅读全文