题解 | #进制转换#

进制转换

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

数制转换的关键就是找出对应位置的系数,我这里用的是ascil码

try:
    while True:
        str1 = str(input())

        num1 = []
        flag = 0
        k = 0 
        for i in str1:
            if flag < 2:
                flag += 1
            else:
                if i != ' ':
                    k += 1
                    num1.append(i)

        ans = 0
        for j in range(k):
            if (ord(num1[j]) >= 65 and ord(num1[j]) <= 70):
                ans += (ord(num1[j])-ord('A')+10)*(16**(k-j-1))
            elif (ord(num1[j]) >= 48 and ord(num1[j]) <= 57):
                ans += (ord(num1[j])-ord('0'))*(16**(k-j-1))
            elif (ord(num1[j]) >= 97 and ord(num1[j]) <= 122):
                ans += (ord(num1[j])-ord('a')+10)*(16**(k-j-1))
            else:
                ans = ans

        print(ans)
except:
    pass
全部评论

相关推荐

01-11 08:47
门头沟学院 Java
choumoduji...:读研的目的就是为了以最快的速度和最低的要求完成“学校”规定的毕业标准,而不是所谓课题组的要求
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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