有谁知道如何获得chr到十六进制转换,其中输出总是两位数?
例如,如果我的转换产生0x1,我需要将其转换为0x01,因为我连接一个长的十六进制字符串.
我使用的代码是:
hexStr += hex(ord(byteStr[i]))[2:]
Run Code Online (Sandbox Code Playgroud)
Sve*_*ach 38
您可以使用字符串格式来实现此目的:
>>> "0x{:02x}".format(13)
'0x0d'
>>> "0x{:02x}".format(131)
'0x83'
Run Code Online (Sandbox Code Playgroud)
编辑:您的代码建议您尝试将字符串转换为十六进制串表示.有一种更简单的方法(Python2.x):
>>> "abcd".encode("hex")
'61626364'
Run Code Online (Sandbox Code Playgroud)
另一种选择(也适用于Python 3.x)就是这个功能binascii.hexlify().
JBe*_*rdo 16
您可以使用格式化功能:
>>> format(10, '02x')
'0a'
Run Code Online (Sandbox Code Playgroud)
你不需要删除那0x部分(就像你用的那样[2:])
Mat*_*ice 11
如果您使用 python 3.6 或更高版本,您还可以使用 fstrings:
v = 10
s = f"0x{v:02x}"
print(s)
Run Code Online (Sandbox Code Playgroud)
输出:
0x0a
Run Code Online (Sandbox Code Playgroud)
大括号部分的语法与 相同string.format(),只是您使用变量的名称。有关更多信息,请参阅https://www.python.org/dev/peps/pep-0498/。
| 归档时间: |
|
| 查看次数: |
53378 次 |
| 最近记录: |