我有一些十六进制数,例如0x61cc1000
,我想将它们输入到只接受字符串的函数中。我想将十六进制数字视为字符串而不做任何更改。
如果我使用str()
功能,则会将其转换为int
和,然后将其视为字符串。但我想保留原始十六进制值。
答案 0 :(得分:4)
您的问题是您正在使用str
:
>>> str(0x61cc1000)
'1640763392' # int value of the hex number as a string
那是因为首先将0x61cc1000评估为int
,然后对结果str
执行int
。
你想这样做:
"{0:x}".format(0x61cc1000)
或者
'{:#x}'.format(0x61cc1000)
正如其他答案中所述,你可以简单地说:
>>> hex(0x61cc1000)
'0x61cc1000'
有关详细信息,请参阅6.1.3.1. Format Specification Mini-Language。
答案 1 :(得分:2)
如果您想要任何整数的十六进制字符串表示,只需将其传递给内置的hex
。
>>> n = 0x61cc1000
>>> n
1640763392
>>> hex(n)
'0x61cc1000'
答案 2 :(得分:1)
如果您想在开头使用0x,可以使用#x
格式,如下所示:
'{:#x}'.format(74954)