编写一个将十进制转换为二进制的函数,采用‘除2取余’的方式,结果与调用bin()一...
def Dec2Bin(dec):temp = []
result = ''
while dec:
quo = dec % 2
dec = dec // 2
temp.append(quo)
while temp:
result += str(temp.pop())
return result
print(Dec2Bin(62))
看不懂这个程序,求个大神解释一下 第1轮
# 62 % 2 = 0
# 62 // 2 = 31
# temp =
第2轮
# 31 % 2 = 1
# 31 // 2 = 15
# temp =
第3轮
# 15 % 2 = 1
# 15 // 2 = 7
# temp =
第4轮
# 7 % 2 = 1
# 7 // 2 = 3
# temp =
第5轮
# 3 % 2 = 1
# 3 // 2 = 1
# temp =
第6轮
# 1 % 2 = 1
# 1 // 2 = 0
# temp =
while dec== while 0 退出循环
temp =
while temp:
result += str(temp.pop())#最后面一个一个弹出,组成字符串
最后 str = '111110' ba21 发表于 2018-5-13 10:58
第1轮
# 62 % 2 = 0
# 62 // 2 = 31
想问一下第二个循环 到最后一个0的时候不就停了吗怎么还能继续呢 ba21 发表于 2018-5-13 10:58
第1轮
# 62 % 2 = 0
# 62 // 2 = 31
我想问下最后在while temp: 时,temp里不是有0嘛,怎么没跳出循环 夜雨声烦12138 发表于 2018-6-28 19:30
我想问下最后在while temp: 时,temp里不是有0嘛,怎么没跳出循环
你人脑模拟电脑走下流程看看 ba21 发表于 2018-6-28 20:42
你人脑模拟电脑走下流程看看
就是没整明白 temp里第一个就是0 怎么还是执行了while里面的句子 夜雨声烦12138 发表于 2018-6-28 20:48
就是没整明白 temp里第一个就是0 怎么还是执行了while里面的句子
我只能说你有没有认真看啊。temp是列表。列表只有在为空的时候才为假。{:10_247:} ba21 发表于 2018-6-28 21:05
我只能说你有没有认真看啊。temp是列表。列表只有在为空的时候才为假。
哦!十分感谢亲的解答!看来还是基础没打牢,闹笑话了 作为一个零基础玩家真的是艰难的理解了一下这个代码:
首先将dec用底板除除以2,得到值quo继续底板除除以2,然后每一步的余数dec形成一个数值传入tepm这个列表,用的是append这个函数,每个dec值加到列表最后,直到值为0,循环跳出。形成最终的tepm列表。然后用pop函数把temp列表里的值弹出来,弹出的过程格式化成字符串,用的是str函数,然后再用+把所有弹出的字符串连接起来,形成最后的字符。
不知道这么解释你能不能理解,纯属零基础玩家的描述。
页:
[1]