AI智能
改变未来

__builtin_popcount() 函数


详解

该函数的主要作用是计算一个数字的二进制中有多少个1,返回值就是其中1的个数。

它使用一张基于表的方法来进行位搜索,因此这个操作的执行效率很高

此处举一题

P1582 倒水

#include <bits/stdc++.h>using namespace std;#define lowbit(x) x&(-x)int main(){int n,k;scanf("%d%d",&n,&k);int ans=n;while(__builtin_popcount(n)>k){n+=lowbit(n);}printf("%d\\n",n-ans);return 0;}

计算一个 32 位无符号整数有多少个位为 1

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » __builtin_popcount() 函数