__builtin_popcount() 是 built-in function of GCC compiler 。该函数用于计算无符号整数中设置的位数。换句话说,它计算正整数的二进制形式中 1 的数量。
用法:
__builtin_popcount(int number);
参数:该函数仅接受无符号或正整数作为参数。
返回值:给定数量中设置的位数。
示例:
Input: n = 5 binary value of 5: 101 Output: 2
例子:
C++
// C++ code to demonstrate the
// __builtin_popcount function
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n = 4;
// Printing the number of set bits in n
cout << __builtin_popcount(n);
return 0;
}
输出
1
时间复杂度(b),其中b是位数。
辅助空间:O(1)
如果数据类型是long long类型会发生什么?
__builtin_popcount() 是一个 GCC 扩展,用于计算 long long 数据类型中设置的位数。
用法:
__builtin_popcountll(long long number);
例子:
C++
// C++ code to demonstrate the
// __builtin_popcount function
#include <bits/stdc++.h>
using namespace std;
int main()
{
long long n = 1e15;
// Printing the number of set bits in n
cout << __builtin_popcountll(n);
return 0;
}
输出
20
相关用法
- C++ _Exit()用法及代码示例
- C++ cos()用法及代码示例
- C++ sin()用法及代码示例
- C++ asin()用法及代码示例
- C++ atan()用法及代码示例
- C++ atan2()用法及代码示例
- C++ acos()用法及代码示例
- C++ tan()用法及代码示例
- C++ sinh()用法及代码示例
- C++ ceil()用法及代码示例
- C++ tanh()用法及代码示例
- C++ fmod()用法及代码示例
- C++ acosh()用法及代码示例
- C++ asinh()用法及代码示例
- C++ floor()用法及代码示例
- C++ atanh()用法及代码示例
- C++ log()用法及代码示例
- C++ trunc()用法及代码示例
- C++ round()用法及代码示例
- C++ lround()用法及代码示例
- C++ llround()用法及代码示例
- C++ rint()用法及代码示例
- C++ lrint()用法及代码示例
- C++ log10()用法及代码示例
- C++ modf()用法及代码示例
注:本文由纯净天空筛选整理自amankr0211大神的英文原创作品 C++ __builtin_popcount() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。