嗨,学习者!在本教程中,我们将使用Python编程语言来计算一个整数中的设定位总数。这个问题将展示比特操纵概念的意义和力量。
什么是设定位--简介
在二进制数的世界里,集合位是由1来代表的。所以,基本上,我们需要找到一个数字的二进制形式中的1的总量。

无集比特演示
理解问题
给定一个数字 N.
返回数字N的二进制版本中存在的集合位的总数。
例如,
如果给定的数字(N)=5。那么结果是2,因为5的二进制版本是101。101中存在的1的总数是2,因此,设置位的数量是2。
方法1:手动转换
将给定的十进制数转换成二进制数,然后计算转换后的二进制数中的1的总数。然而,这并不是解决问题的有效办法。
在这种情况下,时间复杂度将是线性的,但我们可以使这种策略更有效率。
方法2:位操作
因此,在这个方法中,我们将看到位操纵的方法之一。我们可以通过采用这种方法来提高我们代码和方法的效率。
所以我们将按照下面提到的步骤进行。
- 检查N是否>0
- 计算A和A-1的和
- 继续重复第2步,直到A !=0
- 我们将保持迭代次数的计数。
- 该计数等于数字N中的设定位数。
使用Python计算集合位
def countsetbits(A):
count = 0
while(A!=0):
A = A & (A-1)
count = count+1
return(count)
n = int(input("Enter the Number: "))
print(countsetbits(n))
输出示例
Enter the Number: 5
2
Enter the Number: 100
3
我希望你能理解问题背后的概念以及问题的解决方案。
谢谢你阅读本教程!😇