为什么Hex()函数返回一个字符串而不是一个int hex?

时间:2016-03-02 14:50:33

标签: python string int hex ascii

我不知道为什么Hex函数会返回一个像'0x41'这样的字符串而不是0x41

enter image description here

我需要将ASCII值转换为十六进制。但我想要0x INT格式,而不是'0x'字符串。

ascii = 360
hexstring = hex(ascii)
hexstring += 0x41  # i cant do this because hexstring is a string not a int hex

我如何获得int hex? 感谢

1 个答案:

答案 0 :(得分:7)

没有int hex对象。只有替代语法来创建整数:

>>> 0x41
65

您也可以使用0o1010来获得相同的值。或者使用0b1000001以二进制形式指定它;它们都是与Python完全相同的数值;它们只是在代码中指定整数值的不同形式。

只需将ascii保留为整数,并将十六进制表示法值与其相加:

>>> ascii = 360
>>> ascii += 0x41
>>> ascii
425

hex()生成一个可以由Python程序以相同方式解释的字符串,通常在调试代码或快速演示输出时使用(但如果要生成,则应使用format(number, 'x')没有0x前缀的最终用户输出。不需要使用整数。