Konvertiere Hexadezimalzeichenfolge in Python in int
Wie konvertiere ich einen hex-string in einen int in Python?
Vielleicht habe ich es als "0xffff
" oder einfach nur "ffff
".
InformationsquelleAutor der Frage Matt | 2008-10-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ohne der 0x-Präfix, Sie müssen Sie die Basis explizit, sonst gibt ' s keine Möglichkeit zu sagen:
Mit der 0x-Präfix, Python unterscheiden kann hex und dezimal automatisch.
(Sie muss angeben
0
als Basis, um zum aufrufen dieser Präfix-raten Verhalten; das weglassen des zweiten Parameters bedeutet, anzunehmen Basis 10.)InformationsquelleAutor der Antwort Dan Lenski
int(hexString, 16)
funktioniert der trick, und der funktioniert mit und ohne 0x-Präfix:InformationsquelleAutor der Antwort unwind
Für jeden gegebenen string s:
InformationsquelleAutor der Antwort Jorge Ferreira
Zur Konvertierung einer Zeichenfolge in einen int, übergeben Sie die Zeichenfolge, um
int
zusammen mit der Basis, die Sie konvertieren.Beide strings genügt für die Umwandlung in dieser Weise:
Lassen
int
ableitenWenn Sie übergeben Sie 0 als Basis,
int
ableiten, dass die Basis aus dem Präfix der Zeichenfolge sein.Ohne den hexadezimal-Präfix
0x
,int
haben nicht genug Informationen mit denen zu erraten:Literale:
Wenn Sie mit der Eingabe in die Quell-code oder einen interpreter, Python machen die Konvertierung für Sie:
Diese funktionieren nicht mit
ffff
da Python werden denken, dass Sie zu schreiben versucht, eine legitime Python-Namen statt:Python-Nummern beginnen mit einem numerischen Zeichen, während Python-Namen, die starten nicht mit einem numerischen Zeichen.
InformationsquelleAutor der Antwort Aaron Hall
Hinzufügen zu Dan ' s Antwort oben: wenn Sie liefern, die int () - Funktion mit einem hex-string, müssen Sie geben Sie die Basis-als 16-oder es wird Sie nicht darüber, gab es einen gültigen Wert. Die Angabe Basis 16 ist unnötig für hex-zahlen nicht enthaltenen strings.
InformationsquelleAutor der Antwort Max
Die Schlimmste Art und Weise:
Bitte tun Sie das nicht!
Ist die Verwendung von eval in Python eine schlechte Praxis?
InformationsquelleAutor der Antwort André Laszlo
In Python 2.7,
int('deadbeef',10)
scheint nicht zu funktionieren.Folgendes funktioniert bei mir:
InformationsquelleAutor der Antwort Avi2503
Den formatter option '%x' % scheint zu funktionieren in Zuweisungsanweisungen so gut für mich. (Vorausgesetzt, Python 3.0 und höher)
Beispiel
InformationsquelleAutor der Antwort Soundararajan
mit " 0x " - Präfix, können Sie auch mit eval-Funktion
Beispielsweise
InformationsquelleAutor der Antwort Junjie
Konvertieren ein DWORD-Wert von hex in eine Ganzzahl mit Vorzeichen , die Implementierung von zwei-Komplement wie diese:
InformationsquelleAutor der Antwort user355891