如何将十六进制视为字符串?

时间:2014-12-11 09:27:33

标签: python

我有一些十六进制数,例如0x61cc1000,我想将它们输入到只接受字符串的函数中。我想将十六进制数字视为字符串而不做任何更改。

如果我使用str()功能,则会将其转换为int,然后将其视为字符串。但我想保留原始十六进制值。

3 个答案:

答案 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)