用C/C++, 计算一个64整型变量中有多少个二进制1
时间: 2024-10-22 15:25:15 浏览: 20
提取数据(把一个二进制的各位分开)
5星 · 资源好评率100%
在C/C++中,计算一个64位整数(long long 或者 uint64_t 类型)中有多少个二进制位是1,可以使用位运算技巧。一个常见的方法是通过“与”操作符(&)来逐位检查该整数是否包含1,然后计数。下面是一个简单的示例函数:
```c++
#include <cstdint>
uint64_t countSetBits(uint64_t n) {
uint64_t count = 0;
for (size_t i = 0; i < sizeof(n) * CHAR_BIT; ++i) {
if ((n >> i) & 1) { // 如果第i位为1,则count加1
count++;
}
}
return count;
}
// 使用示例
int main() {
uint64_t num = 0b10101010101010101010101010101010LL;
uint64_t result = countSetBits(num);
std::cout << "Number of set bits in " << num << ": " << result << std::endl;
return 0;
}
```
这个函数`countSetBits`会返回给定64位整数中1的个数。
阅读全文