【问题标题】:Convert hex-encoded string to decimal array in python [duplicate]在python中将十六进制编码的字符串转换为十进制数组[重复]
【发布时间】:2016-09-08 19:33:12
【问题描述】:

例如,我想将单词“hello”的十六进制编码68656c6c6f 转换为[104, 101, 108, 108, 111]。我需要它作为一个列表,而不是一个连续的整数。

x=int("68656c6c6f",16) 显然不是我想要的,因为它给了我448378203247,这是有道理的。但这不是我的解决方案。

【问题讨论】:

  • 问题“十六进制字符串到python中的字节数组”(这个问题被标记为重复)没有给出我想要的答案。

标签: python


【解决方案1】:

使用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]

或者使用@Liam 提到的ord

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

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

【讨论】:

  • 好答案,谢谢你提到我!
【解决方案2】:

这样做:

hex_string = "68656c6c6f"

c_list = []

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

【讨论】:

  • 您的解决方案更加优雅和直接。它应该被接受。
猜你喜欢
  • 1970-01-01
  • 2014-03-10
  • 2011-05-15
  • 1970-01-01
  • 2014-04-05
  • 2015-01-06
  • 2019-01-17
  • 2020-06-20
  • 2016-12-27
相关资源
最近更新 更多