Golang 程序用于计算整数中的设置位。

go programmingserver side programmingprogramming

示例

例如,101、11、11011 和 1001001 设置位分别计数 2、2、4 和 3。

解决此问题的方法

步骤 1 − 将数字转换为二进制表示。

步骤 2 − 计算 1 的数量;返回计数。

示例

package main
import (
   "fmt"
   "strconv"
)
func NumOfSetBits(n int) int{
   count := 0
   for n !=0{
      count += n &1
      n >>= 1
   }
   return count
}
func main(){
   n := 20
   fmt.Printf("%d 的二进制表示形式为:%s.\n", n,
   strconv.FormatInt(int64(n), 2))
   fmt.Printf("%d 中设置位的总数为 %d.\n", n, NumOfSetBits(n))
}

输出

20 的二进制表示形式为:10100。
20 中设置位的总数为 2。

相关文章