__builtin_函数

 

__builtin_ctz(x);         //  求x的二进制数末尾0的个数

__builtin_ctz(0100) == 2;

__builtin_clz(x);        //  求x的二进制数前导0的个数(ps:一共有32位)

__builtin_clz(0100) == 29;

__builtin_popcount(x);       //  求x的二进制数中的1的个数

__builtin_popcount(0100) == 1;

__builtin_ffs(x);         //  求x的二进制数中最低位1的位置(突然发现和lowbit有一样的作用,但是要比lowbit慢)

__builtin_ffs(0100) == 3;

__builtin_parity(x);       //  求x的二进制数中1的个数的奇偶性(奇数为1  偶数为0)

__builtin_parity(0100) == 1;

 

你可能感兴趣的:(ACM_干货,ACM_二进制)