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
我相信答案可能非常简单,但谷歌并没有帮助在所有,this related question is referring only to bytes。
由于我需要这么做几十亿次,我不知道是否有pythonic方法使其工作尽可能快。
”256位中的哪一位被设置为1“您使用的数字最多为2 ** 32,即32位。当你谈到256位时,我得到的印象更多的是8位数字,最高可达256(无符号)。你的意思是? – 2015-02-06 13:19:50
代码的第一行...它是一个bistring,它是一个包含8个位置的uint32数组,因此是我的256位。 – linhares 2015-02-06 14:35:10
啊,现在明白了。感谢您的澄清。 – 2015-02-06 14:48:18