算法学习笔记12-任意进制数的转换

来源:互联网 发布:网络综艺的优势有哪些 编辑:程序博客网 时间:2024/05/21 09:24

进制转换

将o进制的数m转换为n进制的数输出。可以识别负数。
因为这里是用字符串读取,所以对数的范围没有限制,可以是很大的数。

#coding=utf-8import sysdef zero(a):    for i in a:        if i==0:            continue        else:            return False    return Truedef o2n(a,old,new):    r=[]#存储商    b=[]#存储新进制数    while not zero(a):        t=0        for i in a:            t=t*old+i            r.append(t//new)#除新进制数new得到商            t%=new#取余数        b.append(t)#存储余数        a=[i for i in r]#把商传给a数组        r=[]#清空r数组    b.reverse()    return bdef out(a):    d=['A','B','C','D','E','F']    for i in a:        if i<10:            print i,            sys.stdout.softspace=0        else:            print d[i-10],            sys.stdout.softspace=0    printm,n,o=raw_input().split()n=int(n)#newo=int(o)#oldflag=Falseif m[0]=='-':    flag=True    del m[0]    print '-',    sys.stdout.softspace=0m=[int(i,o) for i in m]out(o2n(m,o,n))
原创粉丝点击