Menu
CoddyTech

Number of 1 Bits

简单位运算python iconjava iconcpp iconc iconjs icon+10

给你一个非负整数 n。将 n 写成二进制,并返回其中 1 的位数。这个数量也称为置位数、人口计数或汉明重量。例如,6 的二进制表示是 110,所以它有两个值为 1 的位。

函数

hammingWeight(n: integer) → integer
ninteger
可存储在有符号 32 位整数中的非负整数
返回值integer
n 的二进制形式中 1 的个数

约束条件

  • 0 ≤ n ≤ 231-1

示例

输入
n = 11
输出
3
解释
11 的二进制表示是 1011,也就是 8 + 2 + 1。它的 4 位二进制数中有 3 位是 1,所以答案是 3。
challenge icon

进阶

如果这个函数运行数百万次,你怎样用 4 次查表来统计一个 32 位数字中的位数?表中预先计算好了 256 个数值的位数。

重置代码
def hammingWeight(n):
    # 在这里编写代码

测试 #1

测试 #2

测试 #3

参数

n = 11

预期输出

3