2016-04-06 8 views
2

Ich muss XOR durch eine Liste von hex Werten führen, aber sie werden aus einer Textdatei extrahiert, so dass sie als Zeichenfolgen sind, wie kann ich sie in hex Werte umwandeln?Die Liste der hexadezimalen Zeichenfolgendarstellungen muss XOR-ed sein.

Ein Beispiel Liste:

['02', '0E', '00', '12', 'D2', '00', '00', '00', '00', '00', '00', 
'00', '00', '00', '00', 'CC', '02', '0C', '00', '10', '03', '00', 
'00', '00', '00', '00', '00', '00', '00', '1D', '02', '0A', '00', 
'04', '7E', 'F3', '34', '00', '00', '00', '00', 'B5', '02', '0E', 
'00', '12', 'CF', '00', '00', '00', '00', '00', '00', '00', '00', 
'00', '00', 'D1', '02', '0E', '00', '12', 'CC', '00', '00', '00', 
'00', '00', '00', '00', '00', '00', '00', 'D2', '02', '0A', '00', 
'04', '7F', 'F3', '34', '00', '00', '00', '00', 'B4', '02', '0A', 
'02', '0E', '00', '12', 'CF', '00', '00', '00', '00', '00'] 
+0

Haben Sie zufällig mittlere Bytes anstelle von Hex-Werte? – Reti43

Antwort

3

Über die eingebaute Funktion int():

>> print(int('0e', 16)) 
14 

Das zweite Argument int() sagt Zahlen in hex zu erwarten, dh Basis 16

Hinweis dass es keinen "Hex-Wert" gibt; Hexadezimal ist nur eine Notation, die beim Drucken der Nummer verwendet wird. 14 und 0xe sind die gleiche Nummer.

Sie können natürlich auch die gesamte Liste konvertieren eine Liste Verständnis mit:

list2 = [int(x, 16) for x in list1] 

die ursprüngliche Liste von Strings Unter der Annahme list1.

Wenn Sie die Zahlen in hex drucken möchten, verwenden Sie hex(), ein anderes eingebaut:

>>> print(hex(int('e', 16))) 
0xe