Number of 1 Bits

For example, the 32-bit integer ’11' has binary representation 00000000000000000000000000001011, so the function should return 3.

 

class Solution {
public:
    int hammingWeight(uint32_t n) {
        int count = 0;
        //for (int i = 0; i < 32; ++i) {
           // count += (n & 1);
            //n = n >> 1;}
        while(n)
        {
           //count++;
           n=(n&n-1);//这样每次可以使最低位的1变为0
           count++;
        }
        return count;
       
    }
};

posted @ 2015-12-10 15:06  雪之灵  阅读(114)  评论(0编辑  收藏  举报