4.38 十进制到十六进制

本文介绍了一个简单的程序设计案例,该程序能够接收用户输入的十进制整数,并将其转换为对应的十六进制数值。通过定义一个转换函数,程序实现了从十进制到十六进制的有效转换,同时确保输出结果中包含的字母采用大写形式。

Description
编写程序,提示用户输入一个十进制整数,然后显示对应的十六进制值。

Input
输入一个十进制整数a

Output
输出a对应的十六进制值。

输出结果若包含字母,请使用大写形式

Sample Input
300
Sample Output
12C
Hint
对于80%的数据,0 < a < 922337203685775807;
对于100%的数据,0 < a < 922337203685775807 * 100

def convert_16(data):
    result = list()
    char_map1 = {i:str(i) for i in range(10)}
    char_map2 = {10:'A',11:'B',12:'C',13:'D',14:'E',15:'F'}
    char_map1.update(char_map2)

    while data >= 16:
        remain = data&15
        result.insert(0,char_map1[remain])
        data = data>>4

    result.insert(0,char_map1[data])
    return result

input_data = input()
data = int(input_data)
#print("{0:0X}".format(data))

result = convert_16(data)
str = "".join(i for i in result)
print("{}".format(str.upper()))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值