从整数创建Python bitarray - 结果奇怪!
我刚开始使用Python中的bitarray这个库,想用一个整数来创建一个bitarray,结果让我很困惑:
>>> import bitarray
>>> bitarray.bitarray(5)
bitarray('01000')
>>> bitarray.bitarray(5)
bitarray('00010')
>>> bitarray.bitarray(5)
bitarray('00100')
>>> bitarray.bitarray(5)
bitarray('00110')
有没有人知道为什么会这样吗??
还有:有没有更好的方法来从一个整数生成bitarray?虽然这个方法可以用,但把整数转成字符串感觉有点奇怪……
>>> bitarray.bitarray(bin(5)[2:])
bitarray('101')
编辑:我最后换用了bitstring,这个库确实有一个简单的方法可以从整数得到bitstring:
>>> bitstring.BitArray(uint=5,length=6)
BitArray('0b000101')
2 个回答
5
>>> from bitarray.util import int2ba
>>> int2ba(5)
bitarray('101')
来自这个项目页面,在“bitarray.util模块中定义的函数”部分。
3
bitarray.bitarray(n)
这个命令会创建一个长度为 n
的 未初始化 数组。
如果你想从一个整数来创建这个数组,bitarray
似乎并不是特别方便,所以你要么得用 pack/unpack
方法,要么就得一个一个地循环处理每个比特位来设置它们。