統計一個整數的二進制中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;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM