【问题标题】:Convert the hex string to readable output将十六进制字符串转换为可读输出
【发布时间】:2018-04-02 23:32:36
【问题描述】:

我从另一个程序接收到值“\E8\x03”到我的 python 程序中,它实际上是值“1000”,即 0x3E8。如何从该输入字符串进行这种转换?

谢谢。

【问题讨论】:

  • 您是否在该字符串中缺少x
  • 字符串真的是"\xe8\x03",不是吗?
  • 我是这么想的,有没有办法把“\”换成“\x”
  • 应该是这样,但不是。所以我正在努力做到这一点
  • 哇,真的吗?该节目的作者应该被打湿鱼。比如,这是怎么发生的?

标签: python string hex


【解决方案1】:

首先让我们清理字符串:

>>> clean_hex = re.sub(r'\\x?([a-f0-9]{2})', lambda x: chr(int(x.group(1), 16)), r"\E8\x03", flags=re.I)
>>> clean_hex
'\xe8\x03'

然后我们就可以使用struct模块了:

>>> struct.unpack('<H', clean_hex)[0]
1000

【讨论】:

  • NameError: name 're' 未定义
  • @SoumilDeshpande import re 用于正则表达式模块。
猜你喜欢
  • 1970-01-01
  • 2018-08-20
  • 2018-01-31
  • 2018-01-22
  • 1970-01-01
  • 2013-02-07
  • 2021-06-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多