我想取一个整数(这将是<= 255),以十六进制字符串表示
例:我想传入65并得到'\x41',或者255并得到'\xff'。
我尝试过用struct.pack('c',65)这样做,但它会阻塞任何超过9的东西,因为它想要接受单个字符串。
我想取一个整数(这将是<= 255),以十六进制字符串表示
例:我想传入65并得到'\x41',或者255并得到'\xff'。
我尝试过用struct.pack('c',65)这样做,但它会阻塞任何超过9的东西,因为它想要接受单个字符串。
当前回答
我把这个加起来,因为有时候你只想要个位数表示
(x可以是小写字母'x',也可以是大写字母'x',选择决定输出的字母是大写还是小写。):
'{:x}'.format(15)
> f
现在有了新的f "格式字符串,你可以做:
f'{15:x}'
> f
要添加0填充,您可以使用0>n:
f'{2034:0>4X}'
> 07F2
注意:f'{15:x}'中的首字母'f'表示格式字符串
其他回答
你也可以把任何基数的任何数字转换成十六进制。使用这一行代码,它很容易使用:
十六进制(int x (n,) . replace(“0x”、“”)
你有一个字符串n是你的数字x是这个数字的底。首先,改变它为整数,然后十六进制,但十六进制有0x在它的第一个,所以替换我们删除它。
Try:
"0x%x" % 255 # => 0xff
or
"0x%X" % 255 # => 0xFF
Python文档说:“把这个放在你的枕头下面:http://docs.python.org/library/index.html”
这将把一个整数转换成带有0x前缀的2位十六进制字符串:
strHex = "0x%0.2X" % integerVariable
你可以用另一种表达方式
[in] '%s' % hex(15)
[out]'0xf'
(int_variable).to_bytes(bytes_length, byteorder='big'|'little').hex()
例如:
>>> (434).to_bytes(4, byteorder='big').hex()
'000001b2'
>>> (434).to_bytes(4, byteorder='little').hex()
'b2010000'