如何在Python中存储十六进制并将十六进制转换为ASCII?

2023-12-08

我的命令输出类似于0x53 0x48 0x41 0x53 0x48 0x49。现在我需要将其存储为十六进制值,然后将其转换为 ASCII 作为SHASHI.

我尝试过什么-

  1. 我尝试将十六进制值存储为int("0x31",16)然后使用以下命令将其解码为 ASCIIdecode("ascii")但没有运气。
  2. "0x31".decode("utf16")这会引发错误AttributeError: 'str' object has no attribute 'decode'

通过随机编码和解码发现的其他一些东西Google。但仍然没有运气。

问题:- 我如何以十六进制存储值,例如0x53 0x48 0x41 0x53 0x48 0x49并将其值转换为SHASHI以供验证。

注意:对Python不太友好,所以如果这是一个新手问题,请原谅。


The int("0x31", 16)部分正确的是:

>>> int("0x31",16)
49

但要将其转换为字符,您应该使用chr(...)功能反而:

>>> chr(49)
'1'

将它们放在一起(在第一个字母上):

>>> chr(int("0x53", 16))
'S'

并处理整个列表:

>>> [chr(int(i, 16)) for i in "0x53 0x48 0x41 0x53 0x48 0x49".split()]
['S', 'H', 'A', 'S', 'H', 'I']

最后将其转换为字符串:

>>> hex_string = "0x53 0x48 0x41 0x53 0x48 0x49"
>>> ''.join(chr(int(i, 16)) for i in hex_string.split())
'SHASHI'

我希望这有帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Python中存储十六进制并将十六进制转换为ASCII? 的相关文章

随机推荐