Ich möchte eine Ganzzahl (int
oder long
) eine Big-Endian-Byte-Zeichenfolge konvertieren. Der Byte-String muss von variabler Länge sein, so dass nur die minimale Anzahl von Bytes verwendet wird (die Gesamtlängenlänge der vorhergehenden Daten ist bekannt, so dass die variable Länge abgeleitet werden kann).Wie konvertiert man eine Ganzzahl in eine Bytefolge mit variabler Länge?
Meine aktuelle Lösung ist
import bitstring
bitstring.BitString(hex=hex(456)).tobytes()
, die auf der endianness der Maschine hängt natürlich und gibt falsche Ergebnisse, da 0 Bits werden nicht vorangestellter hängen und.
Kennt jemand einen Weg, dies zu tun, ohne irgendeine Annahme über die Länge oder Endianess eines int
zu machen?
Muss dies nur für ein 'int' funktionieren, oder muss es auch für ein' long' funktionieren? – jchl
Für 'long' habe ich das auch vergessen. Ich werde die Frage bearbeiten. –
Dies kann einfach in jeder Version von Python ohne externe Abhängigkeiten getan werden - in jedem Fall möchten Sie ein BYTEstring, kein BITstring. –