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

Manav Narula 2023年1月30日 2021年2月28日
  1. 在 Python 中使用 int() 函式將十六進位制值轉換為整數
  2. 在 Python 中使用 ast.literal_eval 函式把十六進位制轉換成整數
在 Python 中將十六進位制轉換為十進位制

在程式設計的世界裡,我們處理屬於不同數字系統的值。十六進位制數就是這樣一個系統。它被用於儲存記憶體地址、IP 地址等。

十進位制值的基數是 10,而十六進位制值的基數是 16。在 Python 中,十六進位制值的字首是 0x

在本教程中,我們將學習如何將十六進位制值轉換為相應的十進位制整數。

在 Python 中使用 int() 函式將十六進位制值轉換為整數

int() 函式可以幫助將不同的值轉換為十進位制整數。它將十六進位制字串型別化為相應的整數值。為了達到這個目的,我們必須傳遞數字和它的基數來將其轉換為整數(記住十六進位制值的基數是 16)。

s = '0xffa'
print(int(s,16))

輸出:

4090

在 Python 中使用 ast.literal_eval 函式把十六進位制轉換成整數

ast.literal_eval() 函式可以評估 Python 中的字串字面值。當一個十六進位制字串被傳遞給它時,它可以返回整數值,如下圖所示。

import ast
s = ast.literal_eval('0xffa')
print(s)

輸出:

4090

注意,eval() 函式也可以執行同樣的操作,但建議使用 ast.literal_eval()eval() 函式的速度非常慢,被認為是不安全的,使用起來很危險。ast.literal_value() 也只對部分 Python 資料型別進行評估,不像 eval() 函式,它對所有資料型別進行評估。

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 Hex