关于位运算

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。
}

 

posted @ 2021-01-19 19:27  hachuochuo  阅读(48)  评论(0编辑  收藏  举报