整数进制转换——输入十进制整数和欲转换的进制数r,将十进制数转换为r进制数的Python程序

我之前写过十进制与二进制之间的转换:
十进制浮点数转化为二进制的Python代码

十进制整数转化为r进制数

  1. 程序功能为:输入十进制整数和欲转换的进制数r,将十进制转换为r进制。
    编程思想为:调用函数DToR,逐位求模。若该位为大于9的数,则以字母代表(提示:大写字母’A’的ASCII码值等于65);若该位为9以下的数,则转换为字符格式。从低位至高位连接字符串并返回结果。如下图所示:
    在这里插入图片描述
    代码:
def DToR(m,r):
    t=''
    while m!=0 and r!=0:
        c=m % r    #求模
        if (c>9):
            t=chr(c-10+65)+t
        else:
            t=chr(c+48)+t
        m = m // r   #整除
    return t

while True:
    ipt=input("请输入十进制整数('q' 退出程序):\n")
    if ipt=='q':
        break
    r=int(input("请输入欲转换进制(如2,8,16等):\n"))
    rst=DToR(int(ipt),r)
    print('将%s转换为%d进制的结果为:%s' %(ipt,r,rst))

结果:

请输入十进制整数('q' 退出程序):
12
请输入欲转换进制(如2816等):
212转换为2进制的结果为:1100
请输入十进制整数('q' 退出程序):
255
请输入欲转换进制(如2816等):
16255转换为16进制的结果为:FF
请输入十进制整数('q' 退出程序):
16
请输入欲转换进制(如2816等):
816转换为8进制的结果为:20
请输入十进制整数('q' 退出程序):
q

关于chr()与ord()的知识:
python中chr()函数和ord()函数的用法

参考的代码

def hashFuc(x, y):  #x是数字,y是进制
    if y < 10:
        z = []
        while x != 0:
            z.append(x % y)
            x = x // y
        result = z[::-1]

    else:
        k = []
        z = []
        while x != 0:
            z.append(x % y)
            x = x // y
        for i in range(len(z)):
            if z[i] >= 10:
                z[i] = z[i] - 10 + ord('A')
            elif z[i] <= 9 and z[i] >= 0:
                z[i] = z[i] + ord('0')
        for i in range(len(z)):
            k.append(chr(z[i]))
        result = k[::-1]

    for i in range(len(result)):
        print(result[i], end='')
    print('\n')

while True:
    a = int(input("输入一个数字"))
    b = int(input("输入进制数:"))
    hashFuc(a, b)

结果:

输入一个数字12
输入进制数:2
1100

输入一个数字255
输入进制数:16
FF

输入一个数字16
输入进制数:8
20

输入一个数字
  • 8
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值