Skip to content
Branch: master
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
..
Failed to load latest commit information.
README.md
solve.c

README.md

Number of 1 Bits

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.

Credits: Special thanks to @ts for adding this problem and creating all test cases.

Solution

一个数x与x-1的与运算,就是把最低位的1置0。即 x & (x - 1)会把最低位的1置0。

Coding

int hammingWeight(uint32_t n)
{
		int sum = 0;
		while (n) {
			++sum;
			n &= (n - 1);
		}
		return sum;
}
You can’t perform that action at this time.