题解 | #进制转换#

进制转换

http://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6

大概思路分享一下: 1.输入一个十六进制的字符串,是0x开头的,当然最好也能判断一下是否startwiths("0x"),然后在将"0x"减除 2.写一个16进制非数字部分的10进制映射字典中 3.遍历字符串,并判断字符是否存在于映射字典中,若有则替换值 4.根据16进制转10进制的规则进行求和

这里面不好理解的是下标与字符的对应关系!!!!

_str = input().replace('0x', '')
hex = {"A":'10',"B":'11',"C":'12',"D":'13',"E":'14',"F":'15'}
_str_list = [hex[i] if i in hex else i for i in _str]
print(sum([pow(16,len(_str_list) - (i + 1)) * int(_str_list[i]) for i in range(len(_str_list))]))
全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务