【问题标题】:simple way of converting ASCII into HEX with no change in value [duplicate]将 ASCII 转换为 HEX 且值不变的简单方法 [重复]
【发布时间】:2020-06-05 23:27:48
【问题描述】:

在不更改值的情况下将 ASCII 字符串转换为十六进制的最简单方法是什么?

我有什么:

string = "00FA0086"

我想要什么:

hex_string = b'\x00\xFA\x00\x86"

有没有简单的方法或者我需要写一个函数?

【问题讨论】:

  • 到目前为止你尝试过什么?你能显示minimal reproducible example吗?
  • 到目前为止我尝试的第一件事是解码功能:decode(string, 'hex_codec') 但这会给我不同的值,它只会查找示例“FA”作为十六进制值的值.我只是在 python 中寻找一个内置函数来获得“我想要的”。如果没有,我会写一些东西,但我建议有一个干净的内置函数

标签: python python-3.x


【解决方案1】:

您正在从标准 Python 库中寻找 binascii 模块:

import binascii

string = "00FA0086"

print(repr(binascii.a2b_hex(string)))

给予:

b'\x00\xfa\x00\x86'

【讨论】:

  • 是的,非常感谢你!这就是我想要的
  • 当我想转换一个更大的字符串,比如 ''00009e0890423374'' 我得到类似 b'\x00\x00\x9e\x08\x90B3t' 的东西。像这样的长字符串还有其他功能吗?
  • @tryanderror: 0x42 是 B 的 ascii 代码,3 是 0x33,t 是 0x74,因此是结果。表示 ascii 字符的字节的表示就是那个字符。
猜你喜欢
  • 2011-02-12
  • 1970-01-01
  • 2019-09-13
  • 2015-10-30
  • 2015-08-12
  • 1970-01-01
  • 2020-09-12
  • 2013-02-28
  • 2014-09-05
相关资源
最近更新 更多