|
|
发表于 2020-2-28 16:07:11
|
显示全部楼层
本楼为最佳答案
 以 dec = 62 为例,看看代码的执行过程:
- temp = []
- dec = 62
- result = ''
- while dec:
- 进入循环
- 【第1次循环】:
- quo = dec % 2 = 62 % 2 = 0
- dec = dec // 2 = 62 // 2 = 31
- temp . append(quo) --> temp = [0]
- 【第2次循环】:
- quo = dec % 2 = 31 % 2 = 1
- dec = dec // 2 = 31 // 2 = 15
- temp . append(quo) --> temp = [0 , 1]
- 【第3次循环】:
- quo = dec % 2 = 15 % 2 = 1
- dec = dec // 2 = 15 // 2 = 7
- temp . append(quo) --> temp = [0 , 1 , 1]
- 【第4次循环】:
- quo = dec % 2 = 7 % 2 = 1
- dec = dec // 2 = 7 // 2 = 3
- temp . append(quo) --> temp = [0 , 1 , 1 , 1]
- 【第5次循环】:
- quo = dec % 2 = 3 % 2 = 1
- dec = dec // 2 = 3 // 2 = 1
- temp . append(quo) --> temp = [0 , 1 , 1 , 1 , 1]
- 【第6次循环】:
- quo = dec % 2 = 1 % 2 = 1
- dec = dec // 2 = 1 // 2 = 0
- temp . append(quo) --> temp = [0 , 1 , 1 , 1 , 1 , 1]
- dec 的值为 0 while 循环结束
- while temp:
- 进入循环
- 【第1次循环】:
- result = result + str(temp . pop()) = '' + '1' = '1' --> temp = [0 , 1 , 1 , 1 , 1]
- 【第2次循环】:
- result = result + str(temp . pop()) = '1' + '1' = '11' --> temp = [0 , 1 , 1 , 1]
- 【第3次循环】:
- result = result + str(temp . pop()) = '11' + '1' = '111' --> temp = [0 , 1 , 1]
- 【第4次循环】:
- result = result + str(temp . pop()) = '111' + '1' = '1111' --> temp = [0 , 1]
- 【第5次循环】:
- result = result + str(temp . pop()) = '1111' + '1' = '11111' --> temp = [0]
- 【第6次循环】:
- result = result + str(temp . pop()) = '11111' + '0' = '111110' --> temp = []
- temp 为空列表,循环结束
- result = '111110'
复制代码 |
|