4

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.bitarray(bin(5)[2:])
bitarray('101')

編集:私はints からビット文字列を取得する簡単な方法を持っているbitstringに切り替えることになりました:

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

2 に答える 2

3

bitarray.bitarray(n)length の初期化されていない配列を作成しますn

整数から作成する限り、bitarrayそれを特に対象としているようには見えないためpack/unpack、個々のビットを使用またはループして設定する必要があります。

于 2011-06-21T07:55:24.153 に答える