ein Python-Bitarray aus einer ganzen Zahl machen - seltsame Ergebnisse! - Python, Bit-Felder, Bitarray

Ich beginne gerade, das Bitarray-Paket in Python zu verwenden, und versuche, ein Bitarray aus einer Ganzzahl zu machen, gibt mir wirklich verwirrende Ergebnisse:

>>> import bitarray
>>> bitarray.bitarray(5)
bitarray("01000")
>>> bitarray.bitarray(5)
bitarray("00010")
>>> bitarray.bitarray(5)
bitarray("00100")
>>> bitarray.bitarray(5)
bitarray("00110")

Hat jemand eine Idee, warum das passieren würde?

Außerdem: Was wäre ein besserer Weg, um aus einem Int ein Bitarray zu machen? Das funktioniert, aber String-Konvertierung scheint eine seltsame Art, es zu tun ...

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

Bearbeiten: Ich wechselte schließlich zu Bitstring, die eine einfache Methode hat, Bitstrings von Ints zu bekommen:

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

Antworten:

3 für die Antwort № 1

bitarray.bitarray(n) erstellt ein nicht initialisiert Array der Länge n.

Soweit aus einer ganzen Zahl zu erstellen, bitarray scheint nicht besonders darauf ausgerichtet zu sein, also müssen Sie entweder verwenden pack/unpack oder Schleife über die einzelnen Bits, um sie zu setzen.


Speisekarte