| 
 | 
 
 
发表于 2018-1-31 15:50:13
|
显示全部楼层
 
 
 
先明白两个主要的while循环是做什么的: 
    while dec:#这个循环用来找出每一位数0或1 
        quo = dec % 2 
        dec = dec // 2 
        temp.append(quo) 
    while temp:#逆序输出即得到结果 
        result += str(temp.pop()) 
 
然后去搞清楚十进制转换为二进制的数学过程,参考: 
http://bbs.fishc.com/thread-67123-1-1.html 
 
最后举个例子,看看上面过程是怎么实现的: 
比如传入15 
那么进入函数后,第一个循环过程如下: 
quo == 13%2==1,dec == dec//2 == 6,temp == [1] 
quo == 6%2==0,dec == dec//2 == 3,temp == [1,0] 
quo == 3%2==1,dec == dec//2 == 1,temp == [1,0,1] 
quo == 1%2==1,dec == dec//2 == 0,temp == [1,0,1,1] 
退出循环 
进入下一个循环,将temp逆序赋值给result = 1101 
所以15的二进制表示为1101 |   
 
 
 
 |