下列函数只能用于unsigned,每个函数有对应的long , long long版本,在函数最后加上l, ll即可(__builtin_popcountll(n))。
int __builtin_popcount (unsigned int x)
返回二进制中1的个数
1 返回1,2 返回1,3返回2
最好用的一个函数
int __builtin_clz (unsigned int x)
返回二进制中前导0的个数
1返回31,2返回30,4返回29,特例0返回31
int __builtin_ctz (unsigned int x)
返回二进制中后导0的个数
1返回0,2返回1,4返回2
int __builtin_ffs (unsigned int x)
返回二进制中最后一个1的位置
1返回1,2返回2,4返回3,特例0返回0
int __builtin_parity (unsigned int x)
返回二进制中1的个数的奇偶性
1返回1,2返回1,3返回0