思路一:
转换为二进制串,统计 1 出现的次数
func hammingWeight(n int) int {
str := fmt.Sprintf("%32b", n)
slice := []rune(str)
count := 0
for _, item := range slice {
if item == '1' {
count++
}
}
return count
}
思路二:
位运算,逐位检查
func hammingWeight(n int) int {
count := 0
for n!=0 {
if n&1==1 {
count++
}
n>>=1
}
return count
}