website/content.en/ChapterFour/0100~0199/0191.Number-of-1-Bits.md
Write a function that takes an unsigned integer and return the number of '1' bits it has (also known as the Hamming weight).
Example 1:
Input: 00000000000000000000000000001011
Output: 3
Explanation: The input binary string 00000000000000000000000000001011 has a total of three '1' bits.
Example 2:
Input: 00000000000000000000000010000000
Output: 1
Explanation: The input binary string 00000000000000000000000010000000 has a total of one '1' bit.
Example 3:
Input: 11111111111111111111111111111101
Output: 31
Explanation: The input binary string 11111111111111111111111111111101 has a total of thirty one '1' bits.
Note:
-3.Write a function whose input is an unsigned integer and returns the number of digit bits that are ‘1’ in its binary representation (also known as the Hamming weight).
X = X & ( X -1 ) can clear the lowest set binary bit 1. Use this operation until the number is cleared to zero. The number of operations is the number of binary bits that are 1.bits.OnesCount(uint(num)).
package leetcode
import "math/bits"
// Solution 1
func hammingWeight(num uint32) int {
return bits.OnesCount(uint(num))
}
// Solution 2
func hammingWeight1(num uint32) int {
count := 0
for num != 0 {
num = num & (num - 1)
count++
}
return count
}