题解 | #求int型正整数在内存中存储时1的个数#
求int型正整数在内存中存储时1的个数
https://www.nowcoder.com/practice/440f16e490a0404786865e99c6ad91c9
package main import ( "bufio" "fmt" "os" "strconv" ) func main() { scanner := bufio.NewScanner(os.Stdin) scanner.Scan() num, _ := strconv.ParseInt(scanner.Text(), 10, 32) total := 0 for i := 0; i < 32; i++ { // 位运算,依次右移,相当于倒序比较是否为1。 // 二进制的最后一位为1则total+1 if (num>>i)&1 == 1 { total++ } } fmt.Println(total) }