在 Python 中將字串轉換為十六進位制

Manav Narula 2021年3月21日
在 Python 中將字串轉換為十六進位制

十六進位制值的底數為 16。在 Python 中,十六進位制字串的字首為 0x

hex() 函式用於將十進位制整數轉換為其相應的十六進位制數。例如,

a = 102
print(hex(a))

輸出:

0x66

我們還可以使用帶有 float() 函式的 hex() 函式將 float 值轉換為十六進位制。以下程式碼實現了這一點。

a = 102.18
print(float.hex(a))

輸出:

0x1.98b851eb851ecp+6

我們無法使用此函式轉換字串。因此,如果遇到一種情況,我們有一個十六進位制的字串並想將其轉換為十六進位制的數字,我們將無法直接執行它。在這種情況下,我們必須使用 int() 函式將此字串轉換為所需的十進位制值,然後使用前面討論的 hex() 函式將該字串轉換為十六進位制數。

以下程式碼顯示了這一點。

hex_s = '0xEFA'
a = int(hex_s,16)
hex_n = hex(a)
print(hex_n)

輸出:

0xefa

字串中的字元沒有任何對應的十六進位制值。但是,如果使用 encode() 函式將字串轉換為位元組型別的物件,則可以使用 hex() 函式將其轉換為十六進位制值。

例如,

s= 'Sample String'.encode('utf-8')
print(s.hex())

輸出:

53616d706c6520537472696e67

在上面的程式碼中,我們將字串編碼為 utf-8 型別,並將其轉換為位元組型別。

Author: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

相關文章 - Python String

相關文章 - Python Hex