|
发表于 2019-7-14 13:32:07
|
显示全部楼层
本楼为最佳答案
本帖最后由 jackz007 于 2019-7-14 14:51 编辑
- dec = 62
- while dec:
- 第1次循环:quo = 62 % 2 = 0 ,dec = 62 // 2 = 31 , temp . append(0) , temp = [0]
- 第2次循环:quo = 31 % 2 = 1 ,dec = 31 // 2 = 15 , temp . append(1) , temp = [0 , 1]
- 第3次循环:quo = 15 % 2 = 1 ,dec = 15 // 2 = 7 , temp . append(1) , temp = [0 , 1 , 1]
- 第4次循环:quo = 7 % 2 = 1 ,dec = 7 // 2 = 3 , temp . append(1) , temp = [0 , 1 , 1 , 1]
- 第5次循环:quo = 3 % 2 = 1 ,dec = 3 // 2 = 1 , temp . append(1) , temp = [0 , 1 , 1 , 1 , 1]
- 第6次循环:quo = 1 % 2 = 1 ,dec = 1 // 2 = 0 , temp . append(1) , temp = [0 , 1 , 1 , 1 , 1 , 1]
- dec = 0 循环终止
- 我们得到了由二进制位构成的列表 temp, 可是,这个列表的元素顺序却是从低位序开始,就是说,0 应该是最后而不应该是第一个元素。
-
- 于是,就有了 while temp: 的循环,其用意是从列表尾部开始,逆序提取、消减列表元素并将之转化为字符,添加到字符串 result 中。这样 result 中字符的顺序就会和列表 temp 中的恰好相反,而这正是我们想要的。
复制代码 |
|