31 Jan 2018

191. number of 1 bits

  The problem link is problem 191

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.

  We can use n&(n-1) to test if a int is power of 2,n&=(n-1) will remove the lowest 1 bit.

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

Tags: