如何将整数格式化为两位数十六进制?

2024-06-09 15:04:06 发布

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

有人知道如何得到一个chr到hex的转换,输出总是两位数吗?

例如,如果转换结果为0x1,则需要将其转换为0x01,因为我正在连接一个长十六进制字符串。

我使用的代码是:

hexStr += hex(ord(byteStr[i]))[2:]

Tags: 字符串代码hexstrhex两位数chrordbytestr
3条回答

您可以使用format函数:

>>> format(10, '02x')
'0a'

你不需要用它删除0x部分(就像你用[2:]一样)

为此,可以使用字符串格式:

>>> "0x{:02x}".format(13)
'0x0d'

>>> "0x{:02x}".format(131)
'0x83'

编辑:代码建议您尝试将字符串转换为十六进制表示。有一种更简单的方法可以做到这一点(Python2.x):

>>> "abcd".encode("hex")
'61626364'

另一种方法(也适用于Python 3.x)是函数binascii.hexlify()

标准模块binascii也可能是答案,即当您需要转换较长的字符串时:

>>> import binascii
>>> binascii.hexlify('abc\n')
'6162630a'

相关问题 更多 >