将int转换为hex,并使终端读取为hex

2024-09-28 23:29:58 发布

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

我正在尝试将整数转换为十六进制。我已经找到了解决这个问题的答案,就像this,尽管它们对我不起作用。我的意思是:

如果我接受这个:

buf =  ""
buf += "\xda\xc7\xd9\x74\x24\xf4\xbe\x9d\xca\x88\xfb\x5a\x29"
print buf

我用python从控制台运行它我的文件.py然后输出是这样的:······················································································。如果我尝试一下:

^{pr2}$

输出是\xE6,控制台不以十六进制形式读取。我错过了什么??在


Tags: 答案整数thisxfbbufx74xcaxd9
2条回答

\xda是由Python解释器解释的转义序列。\本身没有意义,\\是一个转义序列,意思是“反斜杠”。在

要将自定义十六进制数转换为文本,请参阅以下问题:Convert from ASCII string encoded in Hex to plain ASCII?。下面是最简单答案的摘要:("%0.2X" % var1).decode("hex")。在

在第一个示例中,您要做的是创建一系列转义字符。所以当密码

buf = "\xc9"

解释器实际上是将其转换成由0xc9编码的ascii字符。在

你的问题是你的代码不允许这些转换。您的代码要求一个字符串,该字符串只是字符\then x后跟某个变量的十六进制值。在

你可能在找这样的东西:

^{pr2}$

注意:如果您需要编码UTF-8值(基本上大于255,您可能需要使用unichr()而不是chr()。在

相关问题 更多 >