我在Python 3中遇到从十六进制字符串到十六进制整数的问题。
当你写hex(12)时,你得到输出0xc,这是一个str类。但是,当您键入fx时。 int = 0x55类/类型是INTEGER。
你如何从" 0x55"到0x55(作为整数)
谢谢:)
答案 0 :(得分:0)
您可能会对数字表示的概念和数字的值感到困惑。例如,以下内容在Python中求值为True
:83 == 0o123 == 0x53
十进制表示为83,八进制表示为123,十六进制表示为53.但是,所有这些表示的值都相同。为了便于解释,我将使用十进制表示法给出您的值;价值是83。
如果您尝试将字符串转换为数字,则可能需要查看eval
和ast.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
>>>