我必须在Python中创建一个程序,该程序会将十六进制数转换为十进制数,例如从FA2
转换为4002
。
我必须编写函数hexa2dec(c)
,其中c
是字符串输入参数,返回值是int
类型。
我从创建字典开始:
dic={"0":0, "1":1, "2":2, "3":3, "4":4, "5":5, "6":6, "7":7, "8":8, "9":9, "A":10, "B":11, "C":12, "D":13, "E":14, "F":15}
我的代码是这样:
c = "F"
def hexa2dec(c):
d = ""
if c[0]=="F":
d = dic["F"]*(16**(len(c)-1))
return d
但是我知道这很糟糕,例如,我不知道如果某人这样做print(hexa2dec(F4CF))
,该人可以输入的长度是多少。
我知道使用len(i)
我可以知道长度,但这有帮助吗?
答案 0 :(得分:0)
由于这是您的教授给您设置的任务,因此我不会为您解决此问题,我只给您一些提示:
您可以使用切片/跨步符号向后遍历字符串:for digit in hex_string[::-1]:
可以做到这一点。
现在,您可以使用计数器变量,使用它来计算正确的16的幂,并在每个循环中将其递增。如果您已经知道enumerate()
函数,那么该任务将变得更加容易。
使用结果变量并将每次迭代的结果添加到其中。
那应该让您入门。
答案 1 :(得分:0)
更好的方法是只使用预编程的函数之一,但是由于您想自己编写代码,因此建议您尝试使用循环。例如,while循环对每个数字执行一些数学运算。