创建一个程序以十进制转换十六进制(python)

时间:2019-01-28 16:54:24

标签: python

我必须在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)我可以知道长度,但这有帮助吗?

2 个答案:

答案 0 :(得分:0)

由于这是您的教授给您设置的任务,因此我不会为您解决此问题,我只给您一些提示:

您可以使用切片/跨步符号向后遍历字符串:for digit in hex_string[::-1]:可以做到这一点。

现在,您可以使用计数器变量,使用它来计算正确的16的幂,并在每个循环中将其递增。如果您已经知道enumerate()函数,那么该任务将变得更加容易。

使用结果变量并将每次迭代的结果添加到其中。

那应该让您入门。

答案 1 :(得分:0)

更好的方法是只使用预编程的函数之一,但是由于您想自己编写代码,因此建议您尝试使用循环。例如,while循环对每个数字执行一些数学运算。