题解 | #求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)
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务