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