在 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