Python3实现十进制转为其它进制

1. Python3迭代方法实现十进制转为其它进制

利用连续相除法, 保存商和余数,直到商为0为止,再将余数反转。
用列表a=[0,1,2,3,4,5,6,7,8,9,’A’,’b’,’C’,’D’,’E’,’F’]储存转换之后的每一位,直接用余数作为指针即可找到对应的符号。

def convert(n,x):#n为待转换的十进制数,x为进制,取值为2-16
    list_a = [0,1,2,3,4,5,6,7,8,9,'A','b','C','D','E','F'] # 注意这里从0开始
    list_b = []
    while True:
        s,y = divmod(n,x)  # divmod()函数返回一个包含商和余数的元组
        list_b.append(y) # 这里是保存余数
        if s == 0:
            break
        n = s
    list_b.reverse() # 原地翻转,因为求得的是按0,1,2,..的次数求得,所以需要反过来
    for i in list_b:
        print(list_a[i],end='')

n = int(input("请输入需要转换的十进制数(n>=0):")) # 默认输入为str类型,这里需要转换
x = int(input("请输入希望转换的进制数[2-16]:"))
convert(n,x)

证明过程大家自己思考,我也没有完全想明白,下面放张图,帮助大家理解里面的过程。
在这里插入图片描述

2. Python3递归方法实现十进制转为其它进制

在mooc视频上改编而来

def convert(n,x):#n为待转换的十进制数,x为进制,取值为2-16
    if (n>=0) and (n<x):
        return n
    else:
        return convert(n // x,x) * 10 + n % x # 需要细细思考里面的规律

n = int(input("请输入需要转换的十进制数(n>=0):")) # 默认输入为str类型,这里需要转换
x = int(input("请输入希望转换的进制数[2-16]:"))
print(convert(n,x))

在这里插入图片描述

3. 参考资料

  1. Mooc视频
  2. python十分简单实现十进制到任意进制的转换

后记:
我从本硕药学零基础转行计算机,自学路上,走过很多弯路,也庆幸自己喜欢记笔记,把知识点进行总结,帮助自己成功实现转行。
2020下半年进入职场,深感自己的不足,所以2021年给自己定了个计划,每日学一技,日积月累,厚积薄发。
如果你想和我一起交流学习,欢迎大家关注我的微信公众号每日学一技,扫描下方二维码或者搜索每日学一技关注。
这个公众号主要是分享和记录自己每日的技术学习,不定期整理子类分享,主要涉及 C – > Python – > Java,计算机基础知识,机器学习,职场技能等,简单说就是一句话,成长的见证!
每日学一技

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值