int__builtin_ctz (unsignedintx) 返回二进制表示中1的个数,比如1919810(111010100101101000010)返回 10。 int__builtin_popcount (unsignedintx) 返回x的奇偶校验位,也就是x的1的个数模2的结果,比如1919810(111010100101101000010)返回 0。 int__builtin_parity (unsignedintx) 这些函数都有相应的usigned long和...
这个函数可以帮助我们快速找到一个数的二进制表示中最低位的1所在的位置。 3. __builtin_clz:计算一个无符号整数的二进制表示中前导0的个数。这个函数可以帮助我们快速找到一个数的二进制表示中最高位的1所在的位置。 除了上述几个函数,__builtin_系列函数还有很多其他的函数,比如__builtin_expect、__built...
在用到位运算的时候用这些函数会更加快捷 1. __builtin_ffs(x) 返回 的最后一位 是从后向前第几位 2.__builtin_clz(x) 返回 的二进制下前导的 的个数 3.__builtin_ctz(x) 返回 的二进制下末尾的 的个数 4.__builtin_popcount(x) 返回 的二进制下 的个数 5.__builtin_parity(x) 返回 的...
•int __builtin_popcount (unsigned int x) 返回二进制表示中1的个数。 •int __builtin_parity (unsigned int x) 返回x的奇偶校验位,也就是x的1的个数模2的结果。 此外,这些函数都有相应的usigned long和usigned long long版本,只需要在函数名后面加上l或ll就可以了,比如int __builtin_clzll。