__builtin_popcount() 函数
Posted -xiangyang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了__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-ans); return 0; }
以上是关于__builtin_popcount() 函数的主要内容,如果未能解决你的问题,请参考以下文章
std::bitset<N>::count vs __builtin_popcount