统计一个整数的二进制中1的个数

Posted sykline

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了统计一个整数的二进制中1的个数相关的知识,希望对你有一定的参考价值。

方法一:

比较暴力的方法(通过将二进制右移获得):

int _Count(int x)

    int cnt = 0;
    while(x)
    
        cnt += x&1;
        x >>= 1;
    
    return cnt;

方法二:

通过这个数与比他小1的数相与得到:(很神奇的一个方法,手动写几个例子就可以看出来了,不过要自己想的话,还是比较费力的)

int _Count(int x)

    int cnt = 0;
    while(x)
    
        x &= (x-1);
        cnt++;
    
    return cnt;

 

以上是关于统计一个整数的二进制中1的个数的主要内容,如果未能解决你的问题,请参考以下文章

统计一个整数二进制中1的个数

位运算统计二进制整数中1的个数

统计一个整数的二进制中1的个数

编写代码,求一个整数在内存中的二进制中1的个数

统计二进制数中的1的个数

Offer[15] 二进制中1的个数