2016-05-12 15 views
1

Zum Beispiel möchte ich 68656c6c6f, die Hexadezimalcodierung des Wortes "Hallo", in [104, 101, 108, 108, 111] umgewandelt werden. Ich brauche es als eine Liste, nicht als eine kontinuierliche ganze Zahl.Konvertieren Hex-codierte Zeichenfolge in Dezimal-Array in Python

x=int("68656c6c6f",16) ist anscheinend nicht das, was ich suche, denn es gibt mir 448378203247 stattdessen, was Sinn macht. Aber es ist nicht meine Lösung.

+0

Die Frage „Hexadezimalstring Array Byte in Python "(Für was diese Frage als Duplikat markiert hat) gibt mir nicht die Antwort, die ich möchte. –

Antwort

1

tun gerade dies:

hex_string = "68656c6c6f" 

c_list = [] 

for c in hex_string.decode("hex"): 
    c_list.append(ord(c)) 
+0

Ihre Lösung ist eleganter und unkomplizierter. Es sollte akzeptiert werden. – SparkAndShine

+1

oh, danke! Du hast meine Upvote verdient – Veltro

3

Verwenden int(s, base=16),

s = "68656c6c6f" 
x = [int(s[i:i+2], 16) for i in range(0, len(s), 2)] 

print(x) 
# Output 
[104, 101, 108, 108, 111] 

Oder ord verwenden, wie erwähnt von @Liam

s = "68656c6c6f" 
x = [ord(c) for c in s.decode('hex')] 

print(x) 
# Output 
[104, 101, 108, 108, 111] 
+1

Danke! Das funktioniert. –

+0

gute Antwort, danke für die Erwähnung von mir! – Veltro

Verwandte Themen