当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C++ __builtin_popcount()用法及代码示例


__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


相关用法


注:本文由纯净天空筛选整理自amankr0211大神的英文原创作品 C++ __builtin_popcount() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。