【⽜客⽹华为机试】HJ5进制转换
题⽬
描述
写出⼀个程序,接受⼀个⼗六进制的数,输出该数值的⼗进制表⽰。
万能在线进制转换器转换器网
输⼊描述:
输出描述:
输出该数值的⼗进制字符串。不同组的测试⽤例⽤\n隔开。
⽰例1
输⼊:
0xA
0xAA
输出:
10
170
解题思路
输⼊的16进制前两个字符必为‘0x’,所以先截掉前⾯两个字符。16进制只会出现ABCDEF6个字母,所以提前创建字母对应数字的字典
num_dict。创建⼀个初始值为0的result,⽤来记录对应⼗进制的数值,接着循环每⼀个字符,将字符通过(in_str[i],in_str[i])转换成数字后,根据对应的位置乘上16的(len(in_str)-i-1)次⽅,最后求和。
>>>in_str = "0xAA"
>>>in_str[2:]
'AA'
>>>num_dict = {"A":10, "B":11, "C":12, "D":13, "E":14, "F":15}
>>>(3,3)
3
>>>('A','A')
10
>>>in_str = in_str[2:]
>>>len(in_str)
2
>>>i = 0
>>>len(in_str)-i-1
1
>>>('A','A')*(16**1)
160
>>>i = 1
>>>len(in_str)-i-1
>>>('A','A')*(16**0)
10
>>>160+10
170
代码
while True:
try:
in_str = input()[2:]
num_dict = {"A":10, "B":11, "C":12,
"D":13, "E":14, "F":15}
result = 0
for i in range(len(in_str)):
result = result + int((in_str[i], in_str[i])) * (16**(len(in_str)-i-1))        print(result)
except Exception as e:
break
Reference

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。