|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
代码如下:
- def Dec2Bin(dec):
- temp = []
- result = ''
-
- while dec:
- quo = dec % 2
- dec = dec // 2
- temp.append(quo)
- while temp:
- result += str(temp.pop()) #问题在这里,为什不是result += str(temp),而是这个
- return result
- print(Dec2Bin(62))
复制代码
62太多,不好分析,咱们分析下10进制下的10,二进制是1010.
上代码
- def Dec2Bin(dec):
- temp = []
- result = ''
-
- while dec: #假定当前dec为10,开始一次循环;二次循环,dec=5;三次循环dec = 2;四次循环dec = 1;五次循环dec = 0,跳出while循环。
- quo = dec % 2 #quo求的就是余数,商5余数0;quo值为0;二次循环quo = 5%2 = 1;三次循环quo = 2%2 = 0;四次循环quo = 1%2 =1
- dec = dec // 2 #一次循环dec = 10//2 = 5; 二次循环dec = 5//2 = 2;三次循环dec = 2 //2 = 1 ;四次循环dec = 1//2 = 0
- temp.append(quo) #一次循环,把0加入到temp空列表里;二次循环把1加到temp列表里,temp当前为[0,1];三次循环把0加入temp,temp =[0,1,0];四次循环把1加入temp,temp = [0,1,0,1]
- while temp: #跳出上个循环,执行此循环,当temp不为零或不为空时:
- result += str(temp.pop()) #result 依次等于temp从尾部开始弹出的值(倒序排列),最终result经过temp四次弹出后,temp为False,跳出循环,result =str[1,0,1,0] ="1010"
- return result 返回result的值。
- print(Dec2Bin(10)) #打印dec2Bin这个函数。
复制代码
|
|