猫史档案馆


【Python作品分享】2~16进制互相转化程序【作品秀】

用户:KIHIOKIHIO查看:10 回复:4 评论:10 创建时间:2021-10-04T20:51:38


【作品展示】

center_image

 

【作品介绍】

使用方法:

先输入被转化数字的进制数、已转化数字的进制数、被转化数字,系统会输出已转化数字。

计算原理:

把输入的数字按照输入的数字的进制数转化为10进制数,再把10进制数转化为用输出的数字的进制数表示的数即可输出。

 

【作品源代码】

def main():
    try:
        j1=float(input('请输入被转化数字的进制数:'))
    except ValueError:
        print('输入错误,程序已停止运行。')
        return 0
    try:
        j2=float(input('请输入已转化数字的进制数:'))
    except ValueError:
        print('输入错误,程序已停止运行。')
        return 0
    if int(j1)!=j1 or int(j2)!=j2:
        print('输入错误,程序已停止运行。')
        return 0
    j1=int(j1)
    j2=int(j2)
    if (j1>16 or j2<2) or (j1<2 or j2>16):
        print('输入错误,程序已停止运行。')
        return 0
    n=input('请输入被转化数字:')
    i=0
    aa=['a','b','c','d','e','f']
    bb=[10,11,12,13,14,15]
    ts=[]
    for i in range(0,len(n)):
        s=0
        try:
            cs=int(n[i])
        except ValueError:
            s=1
        if s==0:
            ts.append(int(n[i]))
        else:
            j=0
            fl=0
            for j in range(0,6):
                if aa[j]==n[i]:
                    fl=1
                    break
            if fl==1:
                ts.append(bb[j])
            else:
                print('输入错误,程序已停止运行。')
                return 0
        if ts[i]>=j1:
            print('输入错误,程序已停止运行。')
            return 0
    s1=0
    for i in range(0,len(ts)):
        s1+=ts[i]*(j1**(len(ts)-1-i))
    if s1==0:
        s2yd=[0]
    else:
        s2yd=[]
    while s1>0:
        s2yd.append(s1%j2)
        s1=int(s1/j2)
    i=len(s2yd)-1
    s2y=[]
    while i>=0:
        s2y.append(s2yd[i])
        i-=1
    s2=' '
    for i in range(0,len(s2y)):
        if s2y[i]<10:
            if s2==' ':
                s2=str(s2y[i])
            else:
                s2=s2+str(s2y[i])
        else:
            if s2==' ':
                s2=aa[s2y[i]-10]
            else:
                s2=s2+aa[s2y[i]-10]
    print('已转化数字:'+s2)
    return 0

x=main()

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
KIHIOKIHIO

我这个进制转换不支持小数

点赞0


评论


小苏打_小苏打_

加油()   建议用vscode(没错,我又来推销了) code.visualstudio.com 非常好用

点赞0


评论


KIHIOKIHIO

我这个还不支持负数

点赞0


评论


KIHIOKIHIO

我有本作品的教程:https://shequ.codemao.cn/community/405365

点赞0


评论