我的命令输出类似于0x53 0x48 0x41 0x53 0x48 0x49
。现在我需要将其存储为十六进制值,然后将其转换为 ASCII 作为SHASHI
.
我尝试过什么-
- 我尝试将十六进制值存储为
int("0x31",16)
然后使用以下命令将其解码为 ASCIIdecode("ascii")
但没有运气。
-
"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(使用前将#替换为@)