关于位运算
int main()
{
cout<<__builtin_ffs(4)<<endl; //返回n的最后一位1的是从后向前第几位
//返回3
cout<<__builtin_ctz(8)<<endl; //返回n的后面的0的个数
//返回3
cout<<__builtin_popcount(11)<<endl; //11=1011 返回n中1的个数
//返回3
cout<<__builtin_parity(11)<<endl; //返回n的奇偶校验位,也就是n的1的个数模2的结果。
//返回1
//这些函数都有相应的usigned long和usigned long long版本,只需要在函数名后面加上l或ll就可以了,比如int __builtin_clzll。
}
越自律,越自由

浙公网安备 33010602011771号