我已经编写了下面的python脚本来将十六进制转换为十进制。 它似乎可以正常工作,至少只要十六进制少于8个字符。在
我做错什么了?Tnx!在
""" 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"))
有一种不使用自定义函数将十六进制转换为十进制的更简单的方法-只需使用内置的
int()
函数,如下所示:但是如果您确实想使用自定义函数,那么Barmar的答案是最好的。在
正如巴尔玛指出的那样。发出的是行
返回第一个匹配项。试试这个:
问题是这条线:
index()
返回第一个匹配项的位置。如果十六进制数包含任何重复字符,则所有重复的索引都将错误。在不要搜索索引,而是在迭代时直接获取索引:
^{pr2}$相关问题 更多 >
编程相关推荐