编写一个函数,接收一个无符号整数,返回它拥有的“1”位数(也称为汉明权重,[Hamming weight](https://en.wikipedia.org/wiki/Hamming_weight))。
例如,32 位整数 '11' 的二进制表示为 `00000000000000000000000000001011`,所以函数应该返回3。
```go
// hammingWeight 计算 Hamming weight
func hammingWeight(n uint32) int {
}
```
`func hammingWeight(n uint32) int {
str := strconv.FormatInt(int64(n), 10)
v := strings.Count(str, "1")
return v
}`
#3
更多评论
```go
func hammingWeight(n uint32) int {
var w int
for {
if n == 0 {
break
}
if n&1 == 1 {
w++
}
n = n >> 1
}
return w
}
```
#1
func hammingWeight(n uint32) int {
str := strconv.FormatInt(int64(n), 10)
v := strings.Count(str, "1")
return v
}
#2