法1:
def count_one_bit_2(x):
count = 0
while x != 0:
if x & 1 == 1:
count += 1
x = x >> 1
return count
if __name__ =='__main__':
x1 = 11
print(count_one_bit_2(x1))
法二:
def count_one_bit_2(x):
count = 0
while x:
x = x & (x-1)
count += 1
return count
if __name__ =='__main__':
x1 = 11
print(count_one_bit_2(x1))
本文介绍了两种计算整数二进制表示中1的个数的方法。第一种方法通过循环右移并检查最低位是否为1来计数。第二种方法使用巧妙的位操作,每次迭代将最低位的1清除,直到所有位都被处理。
573

被折叠的 条评论
为什么被折叠?



