Umwandlung von hex zu int in python
Lese ich in 8-bit-Werte von einem ADC über USB an meinen computer. Ein python-Skript läuft auf meinem computer und zeigt kontinuierlich die 8-bit-Werte, die in hex-form. Allerdings, wenn Sie den hex-code entspricht einem ASCII-code, der python wird die Anzeige der ASCII-Zeichen anstelle der raw-hex-code.
Was muss ich tun, um die eingehenden Daten zu display nur die integer-vertreten durch die 8-bit? Ich will es nicht in hex oder ASCII. Das problem ist, dass die Werte kommen, mit einem Schrägstrich statt des bekannten zero: '\xff' anstelle von '0xff'. Wenn ich gehe:
int('0xff',16)
das Ergebnis ist 255, aber wenn ich versuche
int('\xff',16)
Bekomme ich eine Fehlermeldung: invalid literal for int() with base 16.
Kennt jemand einen einfachen Weg zu handle \x im hex-code (ohne Rückgriff auf brute-force-manipulation der Zeichenfolge)?
int(r'\xff'[2:], 16)
funktionieren würde.- er ist immer der
'\xff'
von woanders er nicht die Möglichkeit haben, machen Sie eine Literale Zeichenfolge, ich denke nicht
Du musst angemeldet sein, um einen Kommentar abzugeben.
sollten Sie geben, was Sie wollen
\x##
stellt ein einzelnes byte oder Charakter, wenn man so will, in der Erwägung, dass"FF"
eine Zeichenkette mit zwei Zeichen, die können dann verarbeitet werden, mitint(my_string,16)
aber wenn man ein einzelnes Zeichen, die Sie wahrscheinlich wollenord
können Sie sehen dies, indem er so etwas wie
len('\xFF')
und Sie werden sehen, es ist nur ein einzelnes Zeichen