【牛客网 - 华为机试 - HJ5 进制转换】

这篇博客介绍了如何用Python编写一个程序,接收一个十六进制数,然后将其转换成十进制表示。代码通过切片去除'0x'前缀,利用字典映射'A-F'到'10-15',并逐位计算数值。最后输出转换后的十进制数。

描述

写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。

数据范围:保证结果在

输入描述:

输入一个十六进制的数值字符串。

输出描述:

输出该数值的十进制字符串。不同组的测试用例用\n隔开。

思路:

step1:输入一个十六进制的数;

step2:将输入的数用切片切去前两个字符“0x”,保留剩下位数的字符;

step3:创建一个字典,使得十六进制中的“A-F”分别对应“10-15”;

step4:记录切割后的字符长度,同时设立x=0,便于记录数值;

step5:遍历被切去后的字符,如果字符在字典里,则在字典中取出对应数值并求出当前位数的值,加在x中,同时字符长度减一;如果字符不在字典里,则直接求出当前位数对应的值,加在x中,同时字符长度减一

step6:打印数值x

代码如下:

s = input()
s = s[2:]
dic = {'A':10,'B':11,'C':12,'D':13,'E':14,'F':15}
n = len(s)
x = 0
for i in s:
    if i in dic:
        x = x + dic[i]*16**(n-1)
        n = n-1
    else:
        x = x + int(i)*16**(n-1)
        n = n-1
print(x)

 题解 | #进制转换#_牛客博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱摸鱼的经济er

感谢支持,会继续努力!谢谢!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值