在 C++ 中查找大型二进制数中 1 的个数
给定一个 32 位无符号二进制数,任务是计算设置的位数,即其中存在的“1”。
例如
输入
N = 00000000000000100111
输出
4
说明:给定无符号数中存在的总设置位数为 4,因此我们将输出设置为“4”。
解决此问题的方法
我们给定一个 32 位无符号二进制数。任务是计算其中存在多少个“1”。
要计算给定二进制数中存在的“1”的数量,我们可以使用内置 STL 函数“__builtin_popcount(n)”,该函数将二进制数作为输入参数。
- 将二进制数 N 作为输入。
- 函数 count1Bit(uint32_t n) 将 32 位二进制数作为输入,并返回二进制数中存在的“1”的计数。
- 内置函数 __builtin_popcount(n) 将“n”作为参数输入,并返回计数。
示例
#include<bits/stdc++.h> using namespace std; int count1bits(uint32_t n) { return bitset < 32 > (n).count(); } int main() { uint32_t N = 0000000010100000011; cout << count1bits(N) << endl; return 0; }
运行以上代码将生成以下输出:
输出
4
在给定的数字中,其中存在 4 个设置位或“1”。因此,输出为“4”。
广告