假设如下:
bitstring = numpy.random.random_integers(0,2**32,size=8).astype(numpy.uint32)
如何找出 256 位中的哪一个设置为 1?我有这个……但这太疯狂了,不是吗?
maximum = (2**32)-1
for checkbit in range (256):
yes = bool(numpy.bitwise_and((2**checkbit)%maximum, bitstring[ ( (checkbit // maximum) + checkbit % maximum ) // 32 ] ) )
print 'bit', checkbit, 'set to', yes, 'in string', ( (checkbit // maximum) + checkbit % maximum ) // 32
我相信答案可能非常简单,但谷歌根本没有帮助,这个相关问题仅指 bytes。
由于我需要数十亿次执行此操作,我想知道是否有一种 Pythonic 方法可以使其尽可能快地工作。