小白自学python的编程之路——实现进制数转换(十进制和二进制和八进制的转换)

小白自学python的编程之路——实现进制数转换

  • 十进制转二进制(整数)

直接上代码,很简单,一些小注意地方我标注了

c=[]
a=input("请输入十进制数字:")
a=int(a)
while True:
    div=a//2
    mod=a%2
    c.append(mod) 
    a=div
    if a!=0:
        continue
    else:
        break
print(c)         # 这里注意二进制是逆序 ,得对列表重新排序 
c.reverse()       # 这是对列表倒过来排序 
print(c) 
D=list(map(str,c))    # !  这里注意,把列表中的全部数字转换成字符串返回 
print(D)   
print(''.join(D))     #将所有字符拼成一个字符串输出二进制码

也可以用divmod函数实现,附上代码

c=[]
a=input("请输入十进制数字:")
a=int(a)             # 注意这里老忘记,默认输入的是字符串形式,参加运算要换成整型
while True:             #   也要注意a=int(a)  而不是int(a) 
    f= divmod(a,2)      #divmod返回一个包含商和余数的元组 
    a=f[0] 
    c.append(f[1])
    if a!=0:
        continue
    else:
        break
print(c)
c.reverse()    # 注意倒序排列 
print(''.join(list(map(str,c))))

Note:十进制转8进制,16进制同理,只需要把每次除2改成除8/16就可

**

  • 二进制转十进制
    (附代码)
a=input("请输入二进制数:")
a=list(map(int,a))  
print(a)        # map函数真的好用啊, 处理input输入太有用了 !   
d=len(a)             # 得到输入数字长度 
ff=0 
for i in a:
    d=d-1
    ff=ff+i*(2**d)
print(ff)

**

  • 二进制转八进制
    思路:(先把二进制转换成十进制,再把十进制转换成二进制)
a=input("请输入二进制数:")
a=list(map(int,a))  
print(a)       # 得到二进制整型数字列表(方便索引)   
d=len(a)             # 得到输入数字长度 
ff=0 
for i in a:
    d=d-1
    ff=ff+i*(2**d)
print(ff)
c=[]                     # 十进制转8进制
while True:            
    f= divmod(ff,8)      
    ff=f[0] 
    c.append(f[1])
    if ff!=0:
        continue
    else:
        break
c.reverse()    # 注意倒序排列 
print(''.join(list(map(str,c))))

(看了以上代码理解的话对于进制转换就没什么问题了,大家可以自己试着编写下二进制转16进制,可以和博主交流哦,下次我会附上自己的代码)
好啦,刚开始上手用python编代码,很多地方都不顺心,得自己查很多东西,大佬们有说过写博客是个提升自己的好办法,楼主第一次写博客,希望给大家点帮助,希望和大家一起进步!!!
以后会发些我的学习过程! 感谢大家指正错误

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值