码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-06-01 13:59:00      阅读:87      评论:0      收藏:0      [点我收藏+]

标签:nbsp   进制   二进制   比较   pre   自己   div   span   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的个数

标签:nbsp   进制   二进制   比较   pre   自己   div   span   1的个数   

原文地址:https://www.cnblogs.com/sykline/p/10959277.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!