Sunday, March 29, 2015

Number of 1 Bits

Problem:
Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also known as the Hamming weight).
For example, the 32-bit integer ’11' has binary representation 00000000000000000000000000001011, so the function should return 3.


Sol:
class Solution {
public:
    int hammingWeight(uint32_t n) {
        int count = 0;
        while (n != 0) {
            if ((n & 1) == 1)
                count++;
            n >>= 1;
        }
        return count;
    }
};


== Or ==

public int hammingWeight(int n) {
        int res = 0;
        while (n != 0) {
            res++;
            n = n & (n-1);
        }
        return res;
    }

No comments:

Post a Comment