如何在python中从十六进制字符串获取原始字节

2024-05-16 00:51:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我在python中遇到以下问题

我有十六进制的值0x402de4a,希望将其转换为字节,因此我使用.to_字节(3,'little'),如果我打印它,它会给我b'J\2d@'。我知道这只是字节的一种表示形式,但我需要稍后为输出转换一个字符串,这将给我J\2d@如果我使用str()nut,我需要它是\x4a\x2d\x40如何将byte对象转换为string,以便将原始二进制数据作为字符串获取

我的代码如下

addr = 0x402d4a
addr = int(addr,16)

addr = str(addr.to_bytes(3,'little'))
print(addr)

我的预期产出是 \x4a\x2d\x40

提前谢谢


Tags: to对象字符串string字节二进制byte形式
1条回答
网友
1楼 · 发布于 2024-05-16 00:51:46

没有直接的方法可以从字符串中获取\x4a\x2d等等。或者字节,在这个问题上

你应该做什么:

  1. 把int转换成字节你已经完成了,很好
  2. 在字节上循环,使用f-string打印带有"\\x"前缀的十六进制值
  3. join()他们

二,;3可以很好地折叠成一个发电机,例如:

rslt = "".join(
    f"\\x{b:02x}" for b in value_as_bytes
)

相关问题 更多 >