小白自学python的编程之路——实现进制数转换
十进制转二进制(整数)直接上代码,很简单,一些小注意地方我标注了
c=[]a=input("请输入十进制数字:")a=int(a)while True:div=a//2mod=a%2c.append(mod) a=divif a!=0:continueelse:breakprint(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:continueelse:breakprint(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-1ff=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-1ff=ff+i*(2**d)print(ff)c=[] # 十进制转8进制while True: f= divmod(ff,8)ff=f[0] c.append(f[1])if ff!=0:continueelse:breakc.reverse() # 注意倒序排列 print(''.join(list(map(str,c))))
(看了以上代码理解的话对于进制转换就没什么问题了,大家可以自己试着编写下二进制转16进制,可以和博主交流哦,下次我会附上自己的代码)
好啦,刚开始上手用python编代码,很多地方都不顺心,得自己查很多东西,大佬们有说过写博客是个提升自己的好办法,楼主第一次写博客,希望给大家点帮助,希望和大家一起进步!!!
以后会发些我的学习过程! 感谢大家指正错误