鱼C论坛

 找回密码
 立即注册
查看: 2047|回复: 2

[已解决]17课后进制转换不太懂!进制转换到底怎么使用?

[复制链接]
发表于 2018-1-8 16:37:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
对进制转换这些真的 是不太懂呀看了百科也不太懂怎么办

  1. def Dec2Bin(dec):
  2.     temp = []
  3.     result = ''
  4.    
  5.     while dec:
  6.         quo = dec % 2
  7.         dec = dec // 2
  8.         temp.append(quo)

  9.     while temp:
  10.         result += str(temp.pop())
  11.    
  12.     return result

  13. print(Dec2Bin(62))
复制代码
最佳答案
2018-1-8 18:37:56
①首先你要明白十进制转换为二进制的原理,比如:12
12/2=6 余0 第4位
6/2=3 余0 第3位
3/2=1 余1 第2位
1/2得0 余1 第1位
②得到二进制数:1100(后得到的余数为二进制高位有效数,我一般是记把余数往回写)
因此,我们必须明白此函数主要是求【余数】以及下一次的【被除数】即可
  1. while dec:
  2.         quo = dec % 2      #余数
  3.         dec = dec // 2       #被除数
  4.         temp.append(quo)  #把余数加在列表中
复制代码
  
就是求我们需要的余数和被除数,并将余数加到列表
  1. while temp:
  2.         result += str(temp.pop())
复制代码

因为需要的是余数的回写值,这里利用了列表的.pop()返回列表末尾值并删除
⑤最后返回result就是我们需要的二进制数


小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-1-8 18:37:56 | 显示全部楼层    本楼为最佳答案   
①首先你要明白十进制转换为二进制的原理,比如:12
12/2=6 余0 第4位
6/2=3 余0 第3位
3/2=1 余1 第2位
1/2得0 余1 第1位
②得到二进制数:1100(后得到的余数为二进制高位有效数,我一般是记把余数往回写)
因此,我们必须明白此函数主要是求【余数】以及下一次的【被除数】即可
  1. while dec:
  2.         quo = dec % 2      #余数
  3.         dec = dec // 2       #被除数
  4.         temp.append(quo)  #把余数加在列表中
复制代码
  
就是求我们需要的余数和被除数,并将余数加到列表
  1. while temp:
  2.         result += str(temp.pop())
复制代码

因为需要的是余数的回写值,这里利用了列表的.pop()返回列表末尾值并删除
⑤最后返回result就是我们需要的二进制数


小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-9 11:34:08 | 显示全部楼层
zero月蚀的假面 发表于 2018-1-8 18:37
①首先你要明白十进制转换为二进制的原理,比如:12
12/2=6 余0 第4位
6/2=3 余0 第3位

首先谢谢您回答,我说下我的理解
就是说第一个while循环会得出来一个名为temp的列表,列表里面是每次求出来的余数,例如12,列表里面的参数就是【0,0,1,1】,然后第二个while循环得出来名为result的字符串,字符串里参数是从列表里面反过来的,因为用到了.pop()删除列表末尾值并返回,每次循环result就会添加一个列表最后的值!
您这样解释确实使我理解了,一直都不懂进制转换到底怎么转,不知道原理,现在至少2进制的原理理解了,谢谢你
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-5 14:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表