Skip to content

191 Number of 1 Bits – Easy

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.

Thoughts:

This is very simple and straight forward. Just have a pivot integer, which iterates over all single bit integer of 32-bit.

Solutions:

public class Solution {
    // you need to treat n as an unsigned value
    public int hammingWeight(int n) {
        int pivot = 1;
        int sum = 0;
        for (int i = 0; i < 32; i ++){
            int p = pivot << i;
            if ((n & p) == p)
                sum ++;
        }
        return sum;
    }
}
public class Solution {
    // you need to treat n as an unsigned value
    public int hammingWeight(int n) {
        int mask = 1;
        int count = 0;
        for (int i = 0; i < 32; i ++) {
            if ((n & mask) != 0) {
                count ++;
            }
            mask = (mask << 1);
        }
        return count;
    }
}