题解 | #进制转换#

进制转换

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

怎么说呢,这道题挺无语的,看看就行。

import sys
try:
    while True:
        line = sys.stdin.readline().strip()
        if line == '':
            break
        s = 0
        alphabet_base = ord('A')
        num_base = ord('0')
        for val in line.lstrip('0x'):
            if ord(val) >= alphabet_base:
                s = s * 16 + ord(val) - ord('A') + 10
            elif ord(val) >= num_base:
                s = s * 16 + ord(val) - ord('0')
            else:
                print('error')
        print(s)
except:
    pass



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

while True:
    try:
        print( int(input(), 16) )
    except:
        break
'''
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务