题目描述
写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。
数据范围:保证结果在 1 \le n \le 2^{31}-1 \1≤n≤231−1
输入描述:
输入一个十六进制的数值字符串。
输出描述:
输出该数值的十进制字符串。不同组的测试用例用\n隔开。
示例1
输入:0xAA
输出:170
思路解析:
对于进制转换,转十进制用可以用int()函数。
十六进制转十进制:int('hex型', 16)
八进制转十进制:int('八进制型', 8)
十六进制、十进制、八进制转二进制:bin(任意进制类型)
代码实现:
# 十六进制转十进制
法一:
while True:
try:
s = input()
print(int(s,16))
except:
break
法二:
while True:
try:
s =input().strip().split("x")[1][::-1] #strip()方法用于移除收尾的字符串,默认为空格
dic = {"A":10,"B":11,"C":12,"D":13,"E":14,"F":15}
x = 0
for i in range(len(s)):
if s[i] in dic:
x += dic[s[i]] * (16**i)
else:
x += int(s[i]) * (16**i)
print(x)
except:
break