在 Python 中转换十六进制为字节
本教程将介绍如何在 Python 中把十六进制值转换为字节文字。
十六进制或十六进制值是由 16 个符号组成的数字表示,而不是十进制值中通常的 10 个符号。从 0 到 9 的数字和从 a
到 e
的字符组成了 16 个十六进制符号。
例如,数字 1000
的十六进制转换是 3E8
。
初始化一个十六进制值
让我们使用一个字符串创建一个十六进制值,并使用 binascii
模块中的函数 hexlify()
将短语 A quick brown fox
转换为十六进制值。
另外,要将一个字符串转换成十六进制,我们需要将字符串转换成一个字节,才能够将其转换成十六进制。
import binascii
str_val = 'A quick brown fox'.encode('utf-8')
hex_val = binascii.hexlify(str_val).decode('utf-8')
print(hex_val)
输出:
4120717569636b2062726f776e20666f78
现在我们已经成功地将一个字符串转换为十六进制,让我们继续研究如何将一个十六进制转换为一个字节。
Python 中使用 bytes.fromhex()
把十六进制转换为字节
函数 bytes.fromhex()
接受一个单一的十六进制值参数,并将其转换为一个字节文字。
从前面的结果中获取十六进制值,使用 fromhex()
将其转换为字节文字。
hex_val = '4120717569636b2062726f776e20666f78'
print(bytes.fromhex(hex_val))
输出:
Byte value: b'A quick brown fox'
结果将输出 bytes
字面量,也就是将短语转换为十六进制,并以字母 b
为前缀,指定该值是一个字节字样。
Python 中使用 unhexlify
模块将十六进制转换为字节
Python binascii
模块包含了二进制和 ASCII 操作的高效实用函数。unhexlify()
是 binascii
模块中的一个函数,它将一个十六进制值转换为一个字节文字。
让我们用特殊的非 ASCII 字符初始化一个新的例子,然后将其转换为十六进制值。这个例子是短语 a quick brown fox
的希腊语翻译。
import binascii
from binascii import unhexlify
str_val = 'Μια γρήγορη καφέ αλεπού'.encode('utf-8') #A quick brown fox in Greek translation
hex_val = binascii.hexlify(str_val).decode('utf-8')
print('String value: ', str_val.decode('utf-8'))
print('Hexadecimal: ', hex_val)
print('Byte value: ', unhexlify(hex_val))
输出:
String value: Μια γρήγορη καφέ αλεπού
Hexadecimal: ce9cceb9ceb120ceb3cf81ceaeceb3cebfcf81ceb720cebaceb1cf86cead20ceb1cebbceb5cf80cebfcf8d
Byte value: b'\xce\x9c\xce\xb9\xce\xb1 \xce\xb3\xcf\x81\xce\xae\xce\xb3\xce\xbf\xcf\x81\xce\xb7 \xce\xba\xce\xb1\xcf\x86\xce\xad \xce\xb1\xce\xbb\xce\xb5\xcf\x80\xce\xbf\xcf\x8d'
现在我们已经成功地将十六进制值转换为字节。
在这篇文章中,我们已经介绍了在 Python 中使用 fromhex()
和 binascii.unhexlify()
将十六进制值转换为字节字面。如果你不想在你的源代码中增加导入,最好使用 fromhex()
。否则,两个函数将提供相同的输出。
Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.
LinkedIn相关文章 - Python Bytes
- Python 中如何将字节 bytes 转换为整数 int
- 如何将整型 int 转换为字节 bytes
- 如何在 Python 中把整型转换为二进制
- 如何在 Python 2 和 Python 3 中将字节转换为字符串
- 如何在 Python 中将字符串转换为字节 bytes
- Python 中字符串前面的 b