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

比如给定一个数210(二进制表示为11010010),其中第2、5、7、8位是1(从最右开始数),那么结果就是[2,5,7,8]。
有什么高效的解决办法呢?
慕桂英4014372
浏览 1694回答 2
2回答

慕勒3428872

直接上答案吧,我是用列表推导来做的,[i+1fori,xinenumerate(list(bin(a)[::-1]))ifx=='1']后来为了更高的效率,我直接这样做了。a=(i+1fori,xinenumerate(list(bin(a)[::-1]))ifx=='1')#需要打印出来就用这个迭代呗。forxina:print(x)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript