zoukankan      html  css  js  c++  java
  • Python实现:十进制数与(2~16进制数)之间的互相转换

    (最开始源于牛客网上的一道编程题 : [编程题] 数制转换

    将X进制转为int十进制的功能函数:(乘X次方各位数的加和法)
    # 将X进制转为int十进制的功能函数:(乘X次方各位数的加和法)
    def XToInt(strNum,X):
        sum = 0
        strNum = strNum.lstrip("0") #去掉开始的0(前导零)
        length = len(strNum)
        for i in range(length):
            sum += ABCToNum(strNum[i])*(X**(length-i-1))
        return sum
    将int十进制转为Y进制的功能函数:(除Y取余法)
    # 将int十进制转为Y进制的功能函数:(除Y取余法)
    def intToY(num,Y):
        res = ""
        while (num!=0):
            # temp=
            # temp=
            res = str(NumToABC(num%Y))+res
            num = num//Y #取商
        # res = int(res)
        res.upper()
        return res

    其中的辅助函数为:

    #  辅助功能函数
    def ABCToNum(char):
        if char in "0123456789":
            return int(char)
        if char in "Aa" :
            return 10
        if char in "Bb":
            return 11
        if char in "Cc" :
            return 12
        if char in "Dd":
            return 13
        if char in "Ee" :
            return 14
        if char in "Ff":
            return 15
    #  辅助功能函数
    def NumToABC(intN):
        if intN in [0,1,2,3,4,5,6,7,8,9]:
            return intN
        if intN ==10 :
            return 'A'
        if intN ==11 :
            return 'B'
        if intN ==12 :
            return 'C'
        if intN ==13 :
            return 'D'
        if intN ==14 :
            return 'E'
        if intN ==15 :
            return 'F'

     该题的完整实现代码:

    #  辅助功能函数
    def ABCToNum(char):
        if char in "0123456789":
            return int(char)
        if char in "Aa" :
            return 10
        if char in "Bb":
            return 11
        if char in "Cc" :
            return 12
        if char in "Dd":
            return 13
        if char in "Ee" :
            return 14
        if char in "Ff":
            return 15
    #  辅助功能函数
    def NumToABC(intN):
        if intN in [0,1,2,3,4,5,6,7,8,9]:
            return intN
        if intN ==10 :
            return 'A'
        if intN ==11 :
            return 'B'
        if intN ==12 :
            return 'C'
        if intN ==13 :
            return 'D'
        if intN ==14 :
            return 'E'
        if intN ==15 :
            return 'F'
    
    # 将X进制转为int十进制的功能函数:(乘X次方各位数的加和法)
    def XToInt(strNum,X):
        sum = 0
        strNum = strNum.lstrip("0") #去掉开始的0(前导零)
        length = len(strNum)
        for i in range(length):
            sum += ABCToNum(strNum[i])*(X**(length-i-1))
        return sum
    # 将int十进制转为Y进制的功能函数:(除Y取余法)
    def intToY(num,Y):
        res = ""
        while (num!=0):
            # temp=
            # temp=
            res = str(NumToABC(num%Y))+res
            num = num//Y #取商
        # res = int(res)
        res.upper()
        return res
    
    def NumberSystemConversion():
        X,strInput,Y = input().split()
        intA = XToInt(strInput,int(X))
        outB = intToY(intA,int(Y))
        print(outB)
    NumberSystemConversion()

    结果可以为:

  • 相关阅读:
    VScode 关闭回车后自动格式化代码
    『转载』专利申请
    『转载』 免费公用DNS服务及三大运营商DNS大全 含IPV4和IPV6
    正则表达式和元字符
    随机背景图
    秒表
    数组相关的函数
    对象的结构语法
    数组的结构语法
    展开合并运算符
  • 原文地址:https://www.cnblogs.com/shenxiaolin/p/10066255.html
Copyright © 2011-2022 走看看