如何在Python中将十六进制转换为二进制?

2024 年 8 月 29 日 | 4 分钟阅读

“hex”Hexadecimal(十六进制)的缩写。它是一种以16为基数的计数系统。它在计算和数字电子产品中很常用,因为它可以仅用两个数字来表示一个字节(8位)的数据,比二进制更简洁易读。在十六进制中,数字0-9代表它们各自的值,而字母A-F(或a-f)分别代表值10-15

方法1:使用bin()函数

在Python中,可以使用一个名为bin()的内置函数将十六进制转换为二进制。此函数接受整数或字符串作为输入,并返回其二进制等效值。

示例

输出

11010

方法2:使用位运算符

Python提供了内置的位运算符,可用于操作二进制数据。您可以先将十六进制字符串转换为整数,然后使用位运算提取二进制数字,从而使用这些运算符将十六进制字符串转换为二进制。

示例

这是一个代码片段示例

输出

11111

说明

在此代码中,我们首先使用将基数设置为16int()函数将十六进制字符串转换为整数。之后,我们使用带有格式说明符'b'format()函数将整数转换为二进制字符串。format()函数返回一个字符串,该字符串根据需要带有前导零以表示二进制值。最后,我们打印二进制字符串。

方法3:使用binascii模块的hex2bin()函数

Python的binascii模块提供了一个hex2bin()函数,可用于将十六进制字符串转换为二进制。

示例

这是一个代码片段示例

输出

0b11010

说明

在此代码中,我们首先导入binascii模块。之后,我们定义要转换的十六进制字符串。我们将十六进制字符串传递给binascii.unhexlify()函数将其转换为字节对象。之后,我们使用int.from_bytes()函数将字节对象转换为整数,并将字节顺序设置为'big'(最高有效字节在前)。最后,我们将整数传递给bin()函数以获取二进制字符串表示。

注意:bin()函数返回带有“0b”前缀的二进制字符串。如果要删除前缀,可以使用字符串切片。

方法4:使用列表推导和字符串格式化

我们可以使用列表推导将十六进制字符串转换为二进制,该列表推导遍历字符串中的每个十六进制数字,并使用字符串格式化将其转换为其二进制等效值。

示例

输出

00011010

说明

在此代码中,我们首先定义要转换的十六进制字符串。之后,我们使用列表推导来遍历字符串中的每个十六进制数字。对于每个数字,我们使用将基数设置为16int()函数将其转换为整数,然后使用'{0:04b}'.format()字符串格式化语法将其格式化为4位的二进制字符串。生成的二进制字符串被收集到一个列表中,然后使用''.join()函数将它们连接成一个单一的字符串。

方法5:使用NumPy库

如果安装了NumPy库,可以使用numpy.base_repr()函数将十六进制字符串转换为二进制。

示例

输出

11010

注意:与内置的bin()函数不同,numpy.base_repr()函数返回的二进制字符串没有前缀或前导零。