1. 问题描述
已知数值为16进制,将其转化为10进制。
Python3自带了函数直接将其他进制转化为10进制,以下分别为调库和自己实现2种方式。
#输入为string
value = int(string,16)
2.2 自己实现
def conv(string):
my_dict = {"A":10, "B":11, "C":12, "D":13, "E":14, "F":15}
li = []
line = string.strip()[2:]
for i in range(len(line)):
li.append(my_dict.get(line[i]) if line[i] in my_dict else int(line[i]))
return sum([li[i]*pow(16,len(li)-i-1) for i in range(len(li))])
print(conv(“0xC460”))
>> 50272