在 Python 中将十六进制转换为十进制
Manav Narula
2023年1月30日
2021年2月28日
在编程的世界里,我们处理属于不同数字系统的值。十六进制数就是这样一个系统。它被用于存储内存地址、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 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