Konvertiert hex in int in Python

8

Ich lese in 8-Bit-Werten von einem ADC über USB zu meinem Computer. Ein Python-Skript wird auf meinem Computer ausgeführt und zeigt kontinuierlich die 8-Bit-Werte in Hexadezimalform an. Wenn der Hex-Code jedoch einem ASCII-Code entspricht, zeigt Python anstelle des rohen Hex-Codes das ASCII-Zeichen an.

Was muss ich tun, damit die eingehenden Daten nur die ganze Zahl anzeigen, die durch die 8-Bit dargestellt wird? Ich will es nicht in Hex oder ASCII. Das Problem ist, dass die Werte mit einem Schrägstrich anstelle der bekannten Null kommen: '\ xff' statt '0xff'. Wenn ich gehe:

%Vor%

das Ergebnis ist 255, aber wenn ich es versuche

%Vor%

Ich erhalte einen Fehler: ungültiges Literal für int () mit der Basis 16.

Kennt irgendjemand einen einfachen Weg, um das \ x im Hex-Code zu handhaben (ohne auf eine brutale Manipulation der Saite zurückzugreifen)?

    
CMDoolittle 06.11.2013, 18:28
quelle

1 Antwort

25
%Vor%

sollte Ihnen geben, was Sie wollen

\x## repräsentiert ein einzelnes Byte oder ein Zeichen, während "FF" eine Zeichenfolge aus zwei Zeichen ist, die dann mit int(my_string,16) verarbeitet werden können, aber wenn Sie ein einzelnes Zeichen haben, möchten Sie wahrscheinlich ord

Sie können dies sehen, indem Sie etwas wie len('\xFF') fragen und Sie werden sehen, dass es nur ein einzelnes Zeichen ist

    
Joran Beasley 06.11.2013, 18:29
quelle

Tags und Links