题目
描述
写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。
输入描述:
输入一个十六进制的数值字符串。注意:一个用例会同时有多组输入数据,请参考帖子www.nowcoder.com/discuss/276处理多组输入的问题。
输出描述:
输出该数值的十进制字符串。不同组的测试用例用\n隔开。
示例1
输入:
0xA
0xAA
输出:
10
170
解题思路
输入的16进制前两个字符必为‘0x’,所以先截掉前面两个字符。16进制只会出现ABCDEF6个字母,所以提前创建字母对应数字的字典num_dict。创建一个初始值为0的result,用来记录对应十进制的数值,接着循环每一个字符,将字符通过num_dict.get(in_str[i],in_str[i])转换成数字后,根据对应的位置乘上16的(len(in_str)-i-1)次方,最后求和。
>>>in_str = "0xAA"
>>>in_str[2:]
'AA'
>>>num_dict = {"A"