编程语言
首页 > 编程语言> > 从整数制作python位数组-奇怪的结果!

从整数制作python位数组-奇怪的结果!

作者:互联网

我刚刚开始在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')

有谁知道为什么会这样?

另外:用int制作位数组的更好方法是什么?这可行,但是字符串转换似乎是一种奇怪的方式…

>>> bitarray.bitarray(bin(5)[2:])
bitarray('101')

编辑:我最终切换到bitstring,它确实有一种从int获取位串的简单方法:

>>> bitstring.BitArray(uint=5,length=6)
BitArray('0b000101')

解决方法:

bitarray.bitarray(n)创建一个长度为n的未初始化数组.

至于从整数创建,位数组似乎并不特别适合于此,因此您将不得不使用pack / unpack或循环遍历各个位来设置它们.

标签:bitarray,bit-fields,python
来源: https://codeday.me/bug/20191208/2090118.html