编程实现十进制转二进制程序
(2022-03-24 20:11:28)分类: 研究-学习 |
记得在2020年下学期,我在学习教材中的取余、整除等运算时尝试着利用“除二取余”实现了十进制转成二进制的程序。但是前两天再准备弄这个程序时,怎么也实现不了。能够实现列表,但是将列表转换成数字时出现了问题。
a=n%2
y.append(a)
n=n//2
print(y[i],end='')
a=n%2
y.append(a)
n=n//2
if n==0:
break
print(i,end='')
print(y[i],end='')
'''
arry = []
#定义一个空数组,用于存放2整除后的商
while True:
arry.append(str(num % 2))
#用列表的append方法追加
num = num
// 2 #用地板除求num的值
if num ==
0:
#若地板除后的值为0,那么退出循环
break
return "".join(arry[::-1])
#列表切片倒叙排列后再用join拼接
n=int(input("输入一个数,不超过五位:"))
y=[]
while n>=0:
y=y[::-1]
for i in y:
主要是最后一行的y[i]理解上出现了问题,实际上这个问题在之前的寻找小偷的程序中就出现了,当时自己还没有理解透彻,导致这次的程序中出现了意想不到的问题,一开始我怎么也想不通,在同事的提醒下,原来在for
i in y中,这里的i已经指代了y中的各个元素,不需要再用y[i],否则就出现了指代上的错乱。
n=int(input("输入一个数,不超过五位:"))
y=[]
while n>=0:
#print(y)
y=y[::-1]
print(y)
for i in y:
这样就可以实现了。
实际上,将最后两行变更为
for i in range(len(y)):
也可以实现。同时也免除了y[i]与i的理解难题。
参考了网络上的方法,也是采用的列表,但是在列表转化为字符的方法上,用了‘’.join(arry[::-1]),方法简单有效。
十进制转二进制
原理:采用除2取余,逆序排列输出。
实现:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后依次翻转排序即可得到二进制数,在Python中我们采”//”(地板除)的方法实现转换
#
十进制整数转二进制
def
decToBin(num):
print(decToBin(10))
输出结果:1010
'''
前一篇:flask制作聊天机器人程序2
后一篇:SQL结构化查询语言之增删查改