python算法设计源码:https://github.com/MakerChen66/Python3Algorithm
版权声明:原创不易,本文禁止抄袭、转载,侵权必究!
一、二进制1的个数
当你写下一个正整数的二进制数形式时,有没有想要探究一下这个二进制数里有多少位数为1呢?
例如:199 = 0b11000111
一个明显的解法即是去获得一个单位掩码,遍历这个二进制数 X & (1 << k) 并返回非零的结果,这种方式将0的位数与1的位数都计算在内
有没有更好的方式可以只计数1的位数而完全忽略0的位数呢?你可以有自己更多的想法,但是现在我们并不需要它们
Python算法实现:
def count_1bits(value):
counts = 0
while value:
value &= value - 1
counts += 1
print(counts)
count_1bits(0b11000111)
输出结果:
注意:0b11000111是Python中函数bin()实现的,如下图:
二、源码下载
python算法设计源码下载:
三、作者Info
作者:小鸿的摸鱼日常,Goal:让编程更有趣!
原创微信公众号:『小鸿星空科技』,专注于算法、爬虫,网站,游戏开发,数据分析、自然语言处理,AI等,期待你的关注,让我们一起成长、一起Coding!
版权说明:本文禁止抄袭、转载 ,侵权必究!