将十六进制转换为十进制的Python脚本

标签 python

我已经编写了下面的 python 脚本来将十六进制转换为十进制。 它似乎工作正常,至少只要十六进制少于 8 个字符。

我做错了什么?谢谢!

""" converts hexidecimal to decimal"""
def HextoDec (string):
    ret = 0
    for i in string : 
        hex = "0123456789ABCDEF"
        value= hex.index(i) # 0 to 15  
        index = string.index(i)
        power = (len(string) -(index+1)) #power of 16
        ret += (value*16**power)
    return ret
print(HextoDec("BAABFC7DE"))  

最佳答案

问题是这一行:

index = string.index(i)

index() 返回第一个 匹配项的位置。如果十六进制数包含任何重复字符,您将得到所有重复项的错误索引。

无需搜索索引,而是在迭代时直接获取它:

for index, i in enumerate(string):

关于将十六进制转换为十进制的Python脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49078789/

相关文章:

Python 反转/反转映射(但每个键有多个值)

python - 在编程中,什么是 Spanner 或 Screwdriver ?

python - 在 Python 中使用 OpenCV VideoCapture 获取当前帧

python - 使用 python 和 beautifulsoup 抓取联系信息

python - 查找数组中具有重复键值的 dict 对象

python - SymPy - 替换卷积中乘法的傅里叶

python - 氢包原子编辑器 - 奇怪的显示

python - 在python中将列表中的项目分配给另一个列表中的项目

python - 如何在与应用程序断开连接后释放 Bokeh 服务器(出现错误 : port 5006 is already in use)

Python Turtle 等待按键