我在python 中遇到以下问题
我有十六进制的值0x402de4a,我想把它转换成字节,所以我使用.to_bytes(3,'little'(,如果我打印它,它会给我b'J2d@'
。我知道这只是字节的一种表示,但我需要稍后为输出转换一个字符串,如果我使用str((,它会给我J2d@
。我需要它是x4ax2dx40
。我如何将字节对象转换为字符串,以便我可以获得作为字符串的原始二进制数据
我的代码如下
addr = 0x402d4a
addr = int(addr,16)
addr = str(addr.to_bytes(3,'little'))
print(addr)
我的预期输出是x4ax2dx40
提前感谢
没有直接的方法可以从字符串中获取x4ax2d
等。或者字节。
你应该做什么:
- 将int转换为字节--您已经做到了,很好
- 循环字节,使用f-string打印带有
"\x"
前缀的十六进制值 join()
他们
2&3可以很好地折叠成一个生成器理解,例如:
rslt = "".join(
f"\x{b:02x}" for b in value_as_bytes
)