Answers:
您正在寻找chr
功能。
您似乎正在混合使用整数的十进制表示形式和整数的十六进制表示形式,因此尚不清楚您需要什么。根据您的描述,我认为这些片段之一可以显示您想要的内容。
>>> chr(0x65) == '\x65'
True
>>> hex(65)
'0x41'
>>> chr(65) == '\x41'
True
请注意,这与包含整数(十六进制)的字符串完全不同。如果那是您想要的,请使用hex
内置的。
chr
根本不涉及ASCII- 它只需要一个数字,并生成一个字节的字节串,其中字节的序数值为数字。编写和显示字节串时,ASCII和与ASCII兼容的编码会起作用。
'A'
另一种书写和显示方式进入'\x41'
。所有str
真正关心的是事实,这是65。为了使事情被人理解和使用,它往往成为A.
repr(chr(255)) # '\xff'
也实现了这一目标
尝试:
"0x%x" % 255 # => 0xff
要么
"0x%X" % 255 # => 0xFF
Python文档说:“把它放在枕头底下:http : //docs.python.org/library/index.html ”
让我添加这一点,因为有时您只想用一位数字表示:
'{:x}'.format(15)
> f
现在,使用新的f''
格式字符串,您可以执行以下操作:
f'{15:x}'
> f
注意:最初的'f'
f'{15:x}'
是表示格式字符串
请注意,对于较大的值,hex()
仍然可以使用(某些其他答案无效):
x = hex(349593196107334030177678842158399357)
print(x)
Python 2:0x4354467b746f6f5f736d616c6c3f7dL
Python 3:0x4354467b746f6f5f736d616c6c3f7d
对于解密的RSA消息,可以执行以下操作:
import binascii
hexadecimals = hex(349593196107334030177678842158399357)
print(binascii.unhexlify(hexadecimals[2:-1])) # python 2
print(binascii.unhexlify(hexadecimals[2:])) # python 3
我希望将一个随机整数转换为以#开头的六位十六进制字符串。为了得到这个我用了
"#%6x" % random.randint(0xFFFFFF)
"#%6x" % random.randint(0x0, 0xFFFFFF)
。(%
之前缺少内容,6
并randint
接受2个参数
随着format()
,按照格式的例子,我们可以这样做:
>>> # format also supports binary numbers
>>> "int: {0:d}; hex: {0:x}; oct: {0:o}; bin: {0:b}".format(42)
'int: 42; hex: 2a; oct: 52; bin: 101010'
>>> # with 0x, 0o, or 0b as prefix:
>>> "int: {0:d}; hex: {0:#x}; oct: {0:#o}; bin: {0:#b}".format(42)
'int: 42; hex: 0x2a; oct: 0o52; bin: 0b101010'
您也可以将任何基数的任何数字转换为十六进制。在这里使用这一行代码很容易使用:
hex(int(n,x)).replace("0x","")
您有一个字符串n
,该字符串是您的数字以及x
该数字的基数。首先,将其更改为整数,然后更改为十六进制,但是十六进制首先更改为十六进制0x
,因此replace
我们将其删除。