小白自学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编代码,很多地方都不顺心,得自己查很多东西,大佬们有说过写博客是个提升自己的好办法,楼主第一次写博客,希望给大家点帮助,希望和大家一起进步!!!
以后会发些我的学习过程! 感谢大家指正错误