一系列很好用的函数?时间复杂度大概是 \(O(1)\)?
int __builtin_ffs (unsigned int x)
int __builtin_clz (unsigned int x)
int __builtin_ctz (unsigned int x)
__builtin_clz
相对,比如1919810(111010100101101000010)返回 1。int __builtin_popcount (unsigned int x)
int __builtin_parity (unsigned int x)
这些函数都有相应的 usigned long
和 usigned long long
版本,只需要在函数名后面加上 l
或 ll
就可以了,比如 int __builtin_clzll
。
鸣谢:高效位运算 __builtin_系列函数——Yuer-
原文:https://www.cnblogs.com/Silymtics/p/14426336.html