C001 进制转换
题目描述
请你编写一个程序,将输入的十六进制数字转换为十进制数字。输入包含若干行,每行提供一个十六进制数字,输出每个数字对应的十进制值。
十六进制数字可能包含以下字符:
0-9
表示 0 到 9
A-F
表示 10 到 15
- 十六进制数字的字母均为大写。
输入描述
- 第一行包含一个整数 ( n ),表示接下来有 ( n ) 行输入(( 1 \leq n \leq 1000 ))。
- 接下来的 ( n ) 行,每行包含一个字符串,表示一个十六进制数字(不超过 8 个字符)。
输出描述
输出共 ( n ) 行,每行对应一个十进制整数,表示输入的十六进制数字转换后的十进制值。
样例
输入样例
3
1A
FF
123ABC
输出样例
26
255
1194684
提示
- 输入的十六进制数字不会有无效字符。
- 每个输入的十六进制数字均合法,且不会出现前导符号(如
0x
)。
参考答案
def to_num_10(n):
num_list=[]
for i in n:
num_list.append(i)
sum=0
length = len(num_list)
for i in num_list:
if 'A'<=i<='F':
sum+=(ord(i)-55)*(16**(length-1-num_list.index(i)))
elif '0'<=i<='9':
sum+=int(i)*(16**(length-1-num_list.index(i)))
else:
sum="十六进制数字不正确"
break
return sum
n=int(input())
list=[]
for i in range(n):
list.append(input())
for i in list:
print(to_num_10(i))