Frage

Ich brauche, um Unicode-Strings in Python zu anderen Typen zu konvertieren wie unsigned und signed int 8 Bit, ohne Vorzeichen und signed int 16 Bit, ohne Vorzeichen und signed int 32 Bit, ohne Vorzeichen und signed int 64 Bit, double, float, string, unsigned und signiert 8 Bit, 16-Bit ohne Vorzeichen und signiert, unsigned und vorzeichenbehaftete 32 Bit ohne Vorzeichen und signierte 64-Bit.

Ich brauche von u Menschen helfen.

War es hilfreich?

Lösung

int() die Zeichenfolge in einer ganzen Zahl zu konvertieren. Python hat nicht anders feste Breite ganze Zahlen, so dass Sie nur aus einer Art der Sache bekommen.

Dann verwenden struct die ganze Zahl in eine feste Breite zu packen:

res = struct.pack("=B",i) ## uint8_t
res = struct.pack("=b",i) ## int8_t

res = struct.pack("=H",i) ## uint16_t
res = struct.pack("=h",i) ## int16_t

res = struct.pack("=I",i) ## uint32_t
res = struct.pack("=i",i) ## int32_t

res = struct.pack("=Q",i) ## uint64_t
res = struct.pack("=q",i) ## int64_t

res = struct.pack("=f",i) ## float
res = struct.pack("=d",i) ## double

struct erzeugt eine Byte-Zeichenfolge, die die Zahl in binärer enthält.

EDIT: Aus den Kommentaren, es klingt wie Sie nur die Zeichenfolge konvertiert werden soll (der Dezimalstellen) in eine ganze Zahl. Verwenden Sie einfach int() für das, aber Sie werden nicht alle die komplizierte Überlauf / Unter Semantik der angegebenen Typen. Sie können nicht reproduzieren in Python, zumindest nicht ohne eine ganze Menge Code zu schreiben.

Ich denke, wenn Sie weitere Hilfe möchten, müssen Sie genauer sein über das, was Sie erreichen wollen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top