欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python 编写一个函数,将一个 a 进制的数转换成一个 b 进制的数,其中 a 和 b 都在[2, 16]之间。二进制至十六进制之间转换

程序员文章站 2022-03-15 21:01:02
编写一个函数,将一个 a 进制的数转换成一个 b 进制的数,其中 a 和 b 都 在[2, 16]之间。该函数有3个参数,前两个参数分别是 a 和 b ,第三个参数是一个字符串,表示a进制的数。如果 a 和 b 不在给定范围之内,返回None, 否则返回对应的 b 进制数。def func59(a, b, s): if a == b: return s if 2 <= a <= 16 and 2 <= b <= 16:...

编写一个函数,将一个 a 进制的数转换成一个 b 进制的数,其中 a 和 b 都 在[2, 16]之间。

该函数有3个参数,前两个参数分别是 a 和 b ,第三个参数是一个字符串,表示a进制的数。

如果 a 和 b 不在给定范围之内,返回None, 否则返回对应的 b 进制数。

def func59(a, b, s):
    if a == b:
        return s
    if 2 <= a <= 16 and 2 <= b <= 16:
         #----将给出的字符串数字转换成十进制数----
        if a != 10:
            str_num = str(s)
            str_num = str_num[::-1]
            temp = 0
            step_num = 0
            for i in str_num:
                if i == 'A':
                    i = '10'
                elif i == 'B':
                    i = '11'
                elif i == 'C':
                    i = '12'
                elif i == 'D':
                    i = '13'
                elif i == 'E':
                    i = '14'
                elif i == 'F':
                    i = '15'
                i = int(i)
                step_num += a ** temp * i
                temp += 1
            s = step_num
        #----转换成十进制数的整数类型转换成目标进制数,最终为字符串数字
        if b == b:
            list_1, list_2 = [], []
            while s > 0:
                list_1.append(s % b)
                s //= b
            for i in list_1:
                if i == 10:
                    list_2.append('A')
                elif i == 11:
                    list_2.append('B')
                elif i == 12:
                    list_2.append('C')
                elif i == 13:
                    list_2.append('D')
                elif i == 14:
                    list_2.append('E')
                elif i == 15:
                    list_2.append('F')
                else:
                    list_2.append(str(i))
            return ''.join(list_2[::-1])
    else:
        return None



if __name__ == "__main__":
    print(func59(5, 13, '431'))
    print(func59(2, 16, '11111'))

 

本文地址:https://blog.csdn.net/Using_head/article/details/110452041