在一行上输入一个十六进制数
,代表待转换的十六进制数,格式见题干。保证
转化得到的十进制数
的范围为
。
在一行上输出一个整数,代表
对应的十进制数。
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) # 方式一:进制转换——二进制bin,八进制oct,十进制int,十六进制hex。
# 例如,二进制转十进制,s = input(); output = int(s, 2)
# 方式二:基本原理实现
while True:
try:
str0 = input()[2:].upper()
dic = {'A':10, 'B':11, 'C':12, 'D':13, 'E':14, 'F':15}
n = len(str0)
sum = 0
for i in str0:
if i in dic:
sum += dic[i] * 16 ** (n-1)
n -= 1
else:
sum += int(i) * 16 ** (n-1)
n -= 1
print(sum)
break
except Exception as e:
print(f'{e}')
break