📅  最后修改于: 2023-12-03 15:15:50.861000             🧑  作者: Mango
bitset
是 C++ STL 中的一个库,用于创建和操作二进制位集合。它有以下特点:
bitset
主要用于位运算相关的问题,可以用来压缩存储数据,也可以用来判断某一个位是否为 0 或 1。
本文将介绍如何使用 bitset
计算一个整数的二进制数中有多少个 1。
我们需要定义一个函数,输入一个整数,输出其二进制数中 1 的个数。
#include <bitset>
#include <iostream>
int countBits(int num) {
std::bitset<32> binary(num);
int count = 0;
for (int i = 0; i < 32; i++) {
if (binary[i] == 1) {
count++;
}
}
return count;
}
int main() {
int num = 17;
std::cout << "The number of 1 bits in " << num << " is " << countBits(num) << std::endl;
return 0;
}
在上面的代码中,我们首先将整数转换为二进制的位集合,并将其存储在 std::bitset<32>
对象 binary
中。
然后我们使用一个循环遍历 binary
中的所有位,检查每一位是否为 1。如果是,我们就将 count
变量加一。
最后,我们返回 count
的值,即输入整数的二进制数中 1 的个数。
本文介绍了如何使用 C++ STL 中的 bitset
计算一个整数的二进制数中有多少个 1。这是一个很实用的技巧,在算法和数据结构中经常用到。