HJ5 进制转换

思路:

step1:输入一个十六进制的数;
step2:将输入的数用切片切去前两个字符“0x”,保留剩下位数的字符;
step3:创建一个字典,使得十六进制中的“A-F”分别对应“10-15”;
step4:记录切割后的字符长度,同时设立x=0,便于记录数值;
step5:遍历被切去后的字符,如果字符在字典里,则在字典中取出对应数值并求出当前位数的值,加在x中,同时字符长度减一;如果字符不在字典里,则直接求出当前位数对应的值,加在x中,同时字符长度减一
step6:打印数值x

代码如下:

s = input()
s = s[2:]
dic = {'A':10,'B':11,'C':12,'D':13,'E':14,'F':15}
n = len(s)
x = 0
for i in s:
    if i in dic:
        x = x + dic[i]*16**(n-1)
        n = n-1
    else:
        x = x + int(i)*16**(n-1)
        n = n-1
print(x)