Hex 字符串有一个"0x "前缀。在Python中,如果你有一个"0x "前缀和一个有效的字符串,使用int(string, 0)方法来获得整数。提供0是为了告诉函数从前缀解释基数。
Python字符串到十六进制
要在Python中把 字符串转换成十六进制 ,可以使用hex()方法。 hex()是一个内置的方法,可以将整数转换为相应的十六进制字符串。
你可以使用int(x, base)函数与16转换字符串为整数。
hex()的语法
hex(n)
参数
hex()方法需要一个必要参数n:整数。
返回值
hex()方法将一个整数转换为相应的十六进制字符串形式的数字,并返回该数字。返回的十六进制字符串以前缀0x开始,表示它是十六进制格式。
将一个字符串转换为十六进制的例子
hex_string = "0xFF"
an_integer = int(hex_string, 16)
hex_value = hex(an_integer)
print(hex_value)
输出
0xff
你可以从输出中看到,返回的字符串是十六进制的,因为它以0xff开头。
带有对象的Python hex()
使用hex()方法将一个Python对象转换成哈希值。创建一个自定义类并定义**__index__()**函数,以便与它一起使用hex()函数:
class Ditto:
no = 0
def __index__(self):
print('__index__ function called')
return self.no
dt = Ditto()
dt.no = 19
print(hex(dt))
输出
__index__ function called
0x13
一个浮点数的十六进制表示
使用float.index() 方法将浮点数转换为十六进制。
number = 0.0
print(number, "in hex =", float.hex(number))
number = 19.5
print(number, "in hex =", float.hex(number))
输出
0.0 in hex = 0x0.0p+0
19.5 in hex = 0x1.3800000000000p+4
将字符串转换为十六进制的错误和异常情况
当整数类型常量以外的东西作为参数被传递时,hex()函数会抛出一个TypeError。
hex_string = "0xFF"
hex_value = hex(hex_string)
print(hex_value)
输出
TypeError: 'str' object cannot be interpreted as an integer
你可以看到hex()函数总是期望一个整数,但它得到的是一个字符串,这就是为什么它抛出一个错误。
hex()方法用于所有的标准转换,比如将十六进制转换为十进制,十六进制转换为八进制,以及十六进制转换为二进制。
结论
要将一个十六进制字符串(例如:0xAD4)转换成一个十六进制数字,请使用hex()函数。 使用int() 函数,第二个参数为16,将十六进制字符串转换为整数。然后,使用hex()函数将其转换为十六进制数。
这篇文章就讲到这里。