题目
描述
编写程序,接受十六进制数,输出该数值的十进制表示。
输入描述:
输入十六进制数字字符串。 注意:例会上同时有多组输入数据,请参照投稿牛客网在线判断问题系统使用帮助_站内公告_牛客网处理多组输入问题。
输出描述:
输出该数值的十进制字符串。 不同组的测试用例由n分隔。
示例1
输入:
0xA
0xAA
输出:
10
170
解题思路
的十六进制数的前两个字符一定是‘0x’,所以将前两个字符截断。 由于十六进制数只出现ABCDEF6的六个字符,所以事先制作与字母对应的数字词典num_dict。 制作记录与十进制数对应的数值的初始值为0的result,使各字符循环,通过num_dict.get(in_str[i],in_str[I] )将字符转换为数字后,根据对应的位置,生成16个
in_str='0xAA '
in_str[2:]
亚安号航空母舰
num_dict={'A':10,' B':11,' C':12,' D':13,' E':14,' F':15}
num _ dict.get (3,3 ) )。
3
num_dict.get('a ',' a ' )
10
in_str=in_str[2:]
Len(in_str )表示
2
i=0
len (入星)-i-1
1
num_dict.get('a ',' a ' ) * ) *(16**1) ) )。
160
i=1
len (入星)-i-1
0
num_dict.get('a ',' a ' ) * ) *(16**0) ) ) )。
10
160 10
170
代码
while真:
try:
输入(2: )
num_dict={'A':10,' B':11,' C':12,
' D':13,' E':14,' F':15}
结果=0
财富(len (in _ str ) ) :
result=result int (数字光盘获取(in _ str,in_str[I] ) (16** )指示灯(in _ str )-i-1 ) )
是打印(result )
执行方式为e :
布雷克
Reference
华为机试题库_在线编程题解_牛客题霸_牛客网