在一行上输入一个十六进制数
,代表待转换的十六进制数,格式见题干。保证
转化得到的十进制数
的范围为
。
在一行上输出一个整数,代表
对应的十进制数。
0xFA93
64147
回忆十六进制转化为十进制的方法:从右往左,将第
位乘以
,然后求和。
在这个样例中,
的第
位是
,第
位是
,第
位是
,第
位是
,因此
。
s = input() t = list(s.removeprefix('0x')) print(t) n = len(t) q = 0 i = 0 while i < n: if t[i] == 'A': t[i] = 10 if t[i] == 'B': t[i] = 11 if t[i] == 'C': t[i] = 12 if t[i] == 'D': t[i] = 13 if t[i] == 'E': t[i] = 14 if t[i] == 'F': t[i] = 15 q = q + 16**(n - i -1)*int(t[i])i = i + 1 print(q)我用python写的,看答案把我看乐了
a = input() b = a[::-1] c = 0 for i in range(len(b)-2): if b[i] == 'A': c += 10*16**i elif b[i] == 'B': c += 11*16**i elif b[i] == 'C': c += 12*16**i elif b[i] == 'D': c += 13*16**i elif b[i] == 'E': c += 14*16**i elif b[i] == 'F': c += 15*16**i else: c += int(b[i])*16**i print(c)菜鸡一个
for line in sys.stdin:
a = line.split()
# a = a.lstrip("0x")
a = a[2:]
a = a[::-1]
res = 0
tempdict = {"A":10,"B":11,"C":12,"D":13,"E":14,"F":15}
for i in range(len(a)):
if a[i] in tempdict:
num = tempdict[a[i]]
else:
num = int(a[i])
res = res + num * (16**i)
print(res)