在 Python 中轉換位元組為十六進位制
本教程將介紹如何在 Python 中把位元組轉換成十六進位制。
Python 中的位元組資料型別是一個位元組序列,它可以作為一個變數儲存在磁碟上,然後可以對其進行編碼和解碼。它們像字串一樣被宣告,但字首是字元 b
。位元組接受特殊的 Unicode 字元,字首為\x
。
Python 中初始化位元組文字
我們會給出一個位元組文字的例子,宣告一個帶有特殊字元的字串,並使用函式 encode('utf-8')
將其轉換為位元組文字。
byte_var = 'γιαούρτι - yogurt'.encode('utf-8')
print(byte_var)
輸出:
b'\xce\xb3\xce\xb9\xce\xb1\xce\xbf\xcf\x8d\xcf\x81\xcf\x84\xce\xb9 - yogurt'
encode()
的輸出結果將是一個以字元 b
為字首的位元組文字和特殊字元轉換為 Unicode 符號。
現在一個位元組的宣告已經完成,讓我們繼續將一個位元組轉換成十六進位制。
在 Python 中使用 hex()
方法將一個位元組轉換成十六進位制
從 Python 3.5 引入的 hex()
方法將其轉換為十六進位制字串。
在這種情況下,引數將是要轉換為十六進位制的位元組資料型別。
byte_var = 'γιαούρτι - yogurt'.encode('utf-8')
print('Byte variable: ', byte_var)
print('Hexadecimal: ', byte_var.hex())
輸出:
Byte variable: b'\xce\xb3\xce\xb9\xce\xb1\xce\xbf\xcf\x8d\xcf\x81\xcf\x84\xce\xb9 - yogurt'
Hexadecimal: ceb3ceb9ceb1cebfcf8dcf81cf84ceb9202d20796f67757274
在 Python 中使用 binascii
模組將一個位元組轉換為十六進位制
Python binascii
模組包含了二進位制和 ASCII 操作的高效實用函式。
在這個模組中,有一個函式 hexlify()
,它返回給定引數的十六進位制值,即二進位制值。
在這個例子中,引數將是要轉換為十六進位制的位元組變數。
import binascii
byte_var = 'γιαούρτι - yogurt'.encode('utf-8')
print('Byte variable: ', byte_var)
print('Hexadecimal: ', binascii.hexlify(byte_var))
輸出:
Byte variable: b'\xce\xb3\xce\xb9\xce\xb1\xce\xbf\xcf\x8d\xcf\x81\xcf\x84\xce\xb9 - yogurt'
Hexadecimal: b'ceb3ceb9ceb1cebfcf8dcf81cf84ceb9202d20796f67757274'
請注意,hexlify()
的返回值是一個位元組文字,與 hex()
不同,後者返回一個轉換後的字串。
如果你想把結果轉換成字串,使用函式 decode('utf-8')
。
import binascii
byte_var = 'γιαούρτι - yogurt'.encode('utf-8')
print('Byte variable: ', byte_var)
print('Hexadecimal: ', '' + binascii.hexlify(byte_var).decode('utf-8'))
輸出:
Byte variable: b'\xce\xb3\xce\xb9\xce\xb1\xce\xbf\xcf\x8d\xcf\x81\xcf\x84\xce\xb9 - yogurt'
Hexadecimal: ceb3ceb9ceb1cebfcf8dcf81cf84ceb9202d20796f67757274
現在十六進位制的結果已經從一個位元組文字轉換成了一個字串。
綜上所述,我們已經介紹了在 Python 中把一個位元組轉換成十六進位制的 2 種方法。最簡單的方法是使用內建的函式 hex()
將一個位元組文字轉換為十六進位制。另外,也可以使用 binascii
模組中的 hexlify()
函式來產生同樣的輸出。
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