这篇文章给大家分享的是有关python如何计算一个数值的二进制数中有多少个1的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
计算一个数值的二进制数中有多少个1
相信有了之前的基础,大家很容易实现这个算法。单纯的通过位运算,与1进行与运算,看是否结果为1,然后右移1位,继续判断。Python代码实现如下:
def number1Bit(x):
count = 0
while x:
count = count + (x&1)
x = x >> 1
return count
这样存在一个问题,就是如果有连续多个0,那么需要做多次移位操作。有没有简单的方式跳过连续多个0的情况?
那就是通过与(x-1)进行&运算。这里可能不太好理解,举例说明一下
x 1110 0000
x - 1 1101 1111
x&(x-1) 1100 0000
通过这种方式,会把最后的那个1检测出来。
Python代码实现如下:
def number1Bit(x):
count = 0
while x:
count = count + 1
x = x & (x-1)
return count
感谢各位的阅读!关于“python如何计算一个数值的二进制数中有多少个1”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!