位1的个数

编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 '1' 的个数(也被称为汉明重量)。

def hammingWeight(n):
    """
    n & (n−1),其运算结果恰为把 n 的二进制位中的最低位的 1 变为 0 之后的结果。
    """
    res = 0
    while n:
        n &= (n-1)
        res += 1
    return res
posted @ 2021-09-15 23:16  youguang369  阅读(51)  评论(0)    收藏  举报