为了账号安全,请及时绑定邮箱和手机立即绑定

如何找出一个二进制数中所有1的位置?

如何找出一个二进制数中所有1的位置?

C
泛舟湖上清波郎朗 2018-11-16 08:21:00
比如给定一个数 210 (二进制表示为 11010010),其中第2、5、7、8位是1(从最右开始数),那么结果就是 [2,5,7,8]。有什么高效的解决办法呢?
查看完整描述

1 回答

?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

直接上答案吧,我是用列表推导来做的,

[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)


查看完整回答
反对 回复 2018-11-16
  • 1 回答
  • 0 关注
  • 763 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信