在Python中从数据类型字符串十六进制到INTEGER十六进制类型

时间:2018-01-15 13:59:31

标签: python-3.x integer hex

我在Python 3中遇到从十六进制字符串到十六进制整数的问题。

当你写hex(12)时,你得到输出0xc,这是一个str类。但是,当您键入fx时。 int = 0x55类/类型是INTEGER。

你如何从" 0x55"到0x55(作为整数)

谢谢:)

1 个答案:

答案 0 :(得分:0)

您可能会对数字表示的概念和数字的值感到困惑。例如,以下内容在Python中求值为True83 == 0o123 == 0x53十进制表示为83,八进制表示为123,十六进制表示为53.但是,所有这些表示的值都相同。为了便于解释,我将使用十进制表示法给出您的值;价值是83。

如果您尝试将字符串转换为数字,则可能需要查看evalast.literal_eval函数。以下是如何使用第二种方法的演示:

>>> number = 12345
>>> hex_string = hex(number)
>>> oct_string = oct(number)
>>> print('hex_string =', repr(hex_string))
hex_string = '0x3039'
>>> print('oct_string =', repr(oct_string))
oct_string = '0o30071'
>>> number == ast.literal_eval(hex_string)
True
>>> number == ast.literal_eval(oct_string)
True
>>>