NOTE

二进制中1的个数

通过逐位移位统计 32 位二进制表示中 1 的个数。

Data Structures & Algorithms创建于 更新于 约 1 分钟读完historical

这是历史学习笔记,可能存在过时或不完整的理解。

1. 题目描述

输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。

2. 思路

  • 移位法

3. 实现

//时间:O(1)
//空间:O(1)
func NumberOf1(n int) int {
	count := 0
	bit := 1
	for i := 0; i < 32; i++ {
		if n&bit > 0 {
			count++
		}
		bit = bit << 1
	}
	return count
}

4. 参考

讨论

使用 GitHub 账号参与讨论,评论会保存在 GitHub Issues 中。在 GitHub 查看