Python hex() 函数



Python 的hex()函数用于将整数转换为十六进制(基数为 16)格式。

十六进制是一种使用 16 个数字的数字系统,其中前十个与十进制系统(0-9)相同,后六个由字母A 到 F(或 a-f)表示,分别对应于值10 到 15。当你在 Python 中使用 hex() 函数时,它会将十进制数转换为其十六进制表示形式,结果是一个以“0x”开头后跟十六进制数字的字符串。

语法

以下是 python hex() 函数的语法:

hex(x)

参数

此函数接受一个整数值作为其参数。

返回值

此函数返回一个字符串,表示给定整数的十六进制值。

示例 1

以下是 Python hex() 函数的一个示例。在这里,我们将整数“111”转换为其十六进制表示形式:

integer_number = 111
hexadecimal_number = hex(integer_number)
print('The hexadecimal value obtained is:', hexadecimal_number)

输出

以下是上述代码的输出:

The hexadecimal value obtained is: 0x6f

示例 2

在这里,我们使用 hex() 函数将二进制值和八进制值转换为其相应的十六进制表示形式:

binary_number = 0b1010
octal_number = 0o77
binary_to_hexadecimal = hex(binary_number)
octal_to_hexadecimal = hex(octal_number)
print('The hexadecimal value of binary number is:', binary_to_hexadecimal)
print('The hexadecimal value of octal number is:', octal_to_hexadecimal)

输出

获得的输出如下:

The hexadecimal value of binary number is: 0xa
The hexadecimal value of octal number is: 0x3f

示例 3

现在,我们将使用 hex() 函数将整数值“2108”转换为其十六进制表示形式时,从输出中删除“0x”前缀:

integer_number = 2108
hexadecimal_noprefix = hex(integer_number)[2:]
print('The hexadecimal value of the integer without prefix is:', hexadecimal_noprefix)

输出

产生的结果如下:

The hexadecimal value of the integer without prefix is: 83c

示例 4

如果我们将非整数值传递给 hex() 函数,它将引发 TypeError。

这里我们将通过将浮点数“11.21”传递给 hex() 函数来演示 TypeError:

# Example to demonstrate TypeError
floating_number = 11.21
hexadecimal_number = hex(floating_number)
print('The hexadecimal value of the floating number is:', hexadecimal_number)

输出

我们可以在输出中看到我们得到了一个 TypeError,因为我们已将浮点数传递给了 hex() 函数:

Traceback (most recent call last):
  File "C:\Users\Lenovo\Desktop\untitled.py", line 3, in <module>
    hexadecimal_number = hex(floating_number)
TypeError: 'float' object cannot be interpreted as an integer

示例 5

由于十六进制以基数为 16 的表示法表示数字,因此我们可以通过使用 float.hex() 函数而不是常规的 hex() 函数来处理 TypeError。

# Example without TypeError
floating_number = 11.21
hexadecimal_number = float.hex(floating_number)
print('The hexadecimal value of the floating number is:', hexadecimal_number)

输出

代码的输出如下:

The hexadecimal value of the floating number is: 0x1.66b851eb851ecp+3
python_type_casting.htm
广告