猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
如何找出一个二进制数中所有1的位置?
比如给定一个数 210 (二进制表示为 11010010),其中第2、5、7、8位是1(从最右开始数),那么结果就是 [2,5,7,8]。
有什么高效的解决办法呢?
泛舟湖上清波郎朗
浏览 764
回答 1
1回答
慕田峪4524236
直接上答案吧,我是用列表推导来做的,[i + 1 for i, x in enumerate(list(bin(a)[::-1])) if x =='1']后来为了更高的效率,我直接这样做了。a = (i + 1 for i, x in enumerate(list(bin(a)[::-1])) if x =='1')# 需要打印出来就用这个迭代呗。for x in a: print(x)
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
C
typedef入门问题
1 回答
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续