我想取一个整数(这将是<= 255),以十六进制字符串表示
例:我想传入65并得到'\x41',或者255并得到'\xff'。
我尝试过用struct.pack('c',65)这样做,但它会阻塞任何超过9的东西,因为它想要接受单个字符串。
我想取一个整数(这将是<= 255),以十六进制字符串表示
例:我想传入65并得到'\x41',或者255并得到'\xff'。
我尝试过用struct.pack('c',65)这样做,但它会阻塞任何超过9的东西,因为它想要接受单个字符串。
当前回答
这对我来说效果最好
"0x%02X" % 5 # => 0x05
"0x%02X" % 17 # => 0x11
如果你想要一个宽度更大的数字(2是2个十六进制打印字符),那么3会给你以下结果
"0x%03X" % 5 # => 0x005
"0x%03X" % 17 # => 0x011
其他回答
你可以用另一种表达方式
[in] '%s' % hex(15)
[out]'0xf'
这对我来说效果最好
"0x%02X" % 5 # => 0x05
"0x%02X" % 17 # => 0x11
如果你想要一个宽度更大的数字(2是2个十六进制打印字符),那么3会给你以下结果
"0x%03X" % 5 # => 0x005
"0x%03X" % 17 # => 0x011
Try:
"0x%x" % 255 # => 0xff
or
"0x%X" % 255 # => 0xFF
Python文档说:“把这个放在你的枕头下面:http://docs.python.org/library/index.html”
注意,对于大值,hex()仍然有效(其他一些答案不适用):
x = hex(349593196107334030177678842158399357)
print(x)
Python 2: 0x4354467b746f6f5f736d616c3f7dl 蟒蛇3:0x4354467b746f6f5f736d616c3f7d
对于解密的RSA消息,可以执行以下操作:
import binascii
hexadecimals = hex(349593196107334030177678842158399357)
print(binascii.unhexlify(hexadecimals[2:-1])) # python 2
print(binascii.unhexlify(hexadecimals[2:])) # python 3
你要找的是chr函数。
您似乎混合了整数的十进制表示和整数的十六进制表示,因此不完全清楚您需要什么。根据你的描述,我认为其中一个片段可以说明你想要什么。
>>> chr(0x65) == '\x65'
True
>>> hex(65)
'0x41'
>>> chr(65) == '\x41'
True
注意,这与包含十六进制整数的字符串完全不同。如果这是你想要的,使用十六进制内置。