__builtin_popcount函数
GCC有一个叫做__builtin_popcount的内建函数,它可以精确的计算1的个数。尽管如此,不同于__builtin_ctz,它并没有被 翻译成一个硬件指令(至少在x86上不是)。相反的,它使用基于表的方法来进行位搜索。这无疑很高效并且非常方便。
这个函数主要是我在刷题的过程中发现答案中这样判断的,我之前的判断方式一直是自己写一个函数,这种内建的库函数无疑更加高效
int ans=0;
while(x){
ans += x & 1;
x >> 1;
}
其他的__builtin函数
__builtin_ffs(x)
__builtin_clz(x)
__builtin_ctz(x)
__builtin_popcount(x)
__builtin_parity(x)