__builtin_ctz(x); // 求x的二进制数末尾0的个数
代码语言:javascript复制__builtin_ctz(0100) == 2;
__builtin_clz(x); // 求x的二进制数前导0的个数(ps:一共有32位)
代码语言:javascript复制__builtin_clz(0100) == 29;
__builtin_popcount(x); // 求x的二进制数中的1的个数
代码语言:javascript复制__builtin_popcount(0100) == 1;
__builtin_ffs(x); // 求x的二进制数中最低位1的位置(突然发现和lowbit有一样的作用,但是要比lowbit慢)
代码语言:javascript复制__builtin_ffs(0100) == 3;
__builtin_parity(x); // 求x的二进制数中1的个数的奇偶性(奇数为1 偶数为0)
代码语言:javascript复制__builtin_parity(0100) == 1;