为什么Hex()函数返回一个字符串而不是一个十六进制数?

5

我不知道为什么 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

如何获得十六进制整数?谢谢。
1个回答

11

没有int hex对象。只有一种替代语法可以创建整数:

>>> 0x41
65
你也可以使用0o1010来得到相同的值。或者使用0b1000001以二进制方式指定它; 在Python中,它们都是完全相同的数值,它们只是在代码中指定整数值的不同形式。
只需将ascii保持为整数,并将您的十六进制符号值与其相加即可:
>>> ascii = 360
>>> ascii += 0x41
>>> ascii
425

hex() 产生的字符串可以被 Python 程序以相同的方式解释,通常用于调试代码或快速呈现输出(但如果您想生成没有 0x 前缀的最终用户输出,则应该使用 format(number, 'x'))。使用它并非处理整数所必需。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接