本文共 706 字,大约阅读时间需要 2 分钟。
https://www.cnblogs.com/tldr/p/11288935.html
返回x的最后一位1的是从后向前第几位,比如7368(1110011001000)返回4。
int n = 1;//1int m = 8;//1000cout<<__builtin_ffs(n)<
返回前导的0的个数。
返回后面的0个个数,和__builtin_clz相对。
int n = 1;//1int m = 8;//1000cout<<__builtin_ctzll(n)<
返回二进制表示中1的个数。
int n = 15; //二进制为1111cout<<__builtin_popcount(n)<
返回x的奇偶校验位,也就是x的1的个数模2的结果。
int n = 15;//二进制为1111int m = 7;//111cout<<__builtin_parity(n)<
此外,这些函数都有相应的usigned long和usigned long long版本,只需要在函数名后面加上l或ll就可以了,比如int __builtin_clzll。
https://www.cnblogs.com/tldr/p/11288935.html