wer*_*ika 5 python bitarray bit-fields
我刚刚开始在 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')
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么会发生这种情况?
另外:从 int 生成位数组的更好方法是什么?这是可行的,但是字符串转换似乎是一种奇怪的方法......
>>> bitarray.bitarray(bin(5)[2:])
bitarray('101')
Run Code Online (Sandbox Code Playgroud)
编辑:我最终切换到bitstring,它确实有一个从整数获取位串的简单方法:
>>> bitstring.BitArray(uint=5,length=6)
BitArray('0b000101')
Run Code Online (Sandbox Code Playgroud)
>>> from bitarray.util import int2ba
>>> int2ba(5)
bitarray('101')
Run Code Online (Sandbox Code Playgroud)
从项目页面“bitarray.util 模块中定义的函数:”下。
bitarray.bitarray(n)创建一个长度为未初始化的数组n。
就从整数创建而言,bitarray似乎并不特别适合于此,因此您必须使用pack/unpack或循环各个位来设置它们。