Umwandlung von Unicode-Zeichenfolge in Python
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.
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.