华为机试HJ5进制转换

华为机试HJ5进制转换

题目:

将十六进制的数转换为十进制的数

想法:

将输入的十六进制的数去除前缀0x后,按位置进行计算十进制数字(计算公式见代码),并将每个位置上得到数值累加,最终获得转换后的十进制数。

input_number = input()
# 用字典表示出十六进制数中用字母表示的数
number_dict = {"A": 10, "B": 11, "C": 12, "D": 13, "E": 14, "F": 15}

# 去除十六进制的前缀符号
input_number = input_number.replace("0x", "")
number = 0
for i in range(len(input_number)):
    if input_number[i] in number_dict:
        single_number = number_dict[input_number[i]]
    else:
        single_number = int(input_number[i])
    number += single_number * (16 ** (len(input_number) - i - 1))  # 计算每个位置上的十六进制转十进制

print(number)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值