计算机导论第2章ppt研讨.pptVIP

  1. 1、本文档共90页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机导论第2章ppt研讨

“若见诸相非相,即见如来” * Dr. 沙行勉 * 世间所有的数、语言文字、千奇百怪的符号在计算机中都可以用二进制编码表示,我们输入的符号在计算机看来都不过是一串数。 我们可以多向计算机学学,不要起分别心,不过就是一串数字或一串声波罢了。如同《金刚经》所说:“若见诸相非相,即见如来。”大家细细体会这个无言可说的智慧吧。 我们尽力做事,不要执着结果,只有不执着结果,才会尽力做事。“他”或“她”或“它”从来就不是你的,哪有什么失去呢?唯有不“患得患失”,才会积极地面对人生。还是金刚经讲得好:“一切有为法,如梦幻泡影,如露亦如电,应作如是观”。 用逻辑做加法-全加器 * Dr. 沙行勉 * 全加器的真值表: A B Ci Sum Co 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 观察真值表发现: Carry:只要A、B、Ci中有任意两个输入的值是1,不管余下的一个输入值是多少,Co一定会是1。 Co=AB+ACi+BCi Sum:有4种情况会使得Sum的取值为1,这四种情况中只要有一种情况成立,Sum即为1。 Sum= ABCi + ABCi +ABCi +ABCi 。 程序示例-全加器 * Dr. 沙行勉 * 程序直接使用Python中的逻辑运算符表达了全加器的逻辑算式。 程序的三个输入是加数a、被加数b,和进位c;两个输出分别是Sum和向左邻位的进位Carry。 程序中的“and”是逻辑与的运算符,“or”是逻辑或的运算符,“not”是逻辑非的运算符。 反斜杠 “\”表示一个长语句在下一行的继续,这是Python语言为了便于大家使用而提供的一个语句连接符号。 #程序: 全加器 def FA(a,b,c): # Full adder Carry = (a and b) or (b and c) or (a and c) Sum = (a and b and c) or (a and (not b) and (not c)) \ or ((not a) and b and (not c)) \ or ((not a) and (not b) and c) return Carry, Sum 用逻辑做加法-涟波进位加法器 * Dr. 沙行勉 * 涟波进位加法器(Ripple-carry adder):把多个1位全加器串联起来,组成一个多位的加法器。 串联方式中,每个全加器计算一位加法,只需要简单地将一个全加器输出的进位连接到与其左邻的全加器的输入进位。 如果要计算第i位的值,必须先计算出第0到i-1位的所有加法。 最右端的全加器执行最低位的加法,它进位输入C0通常置为常量0。也可以直接用一个半加器执行最低位的加法。 程序示例-程序:完整的加法器 * Dr. 沙行勉 * 两个输入x和y,分别代表被加数和加数;有两个输出,分别是进位Carry和存放加法结果的列表L。 两个while循环在位数较少的数前面补0,直到两个数的位数相同。 for循环从二进制数的最低位开始,调用全加器函数FA(x[i],y[i],Carry)对输入的每一位依次做加法。 用Python实现的加法器利用了Python语言所定义的列表的性质,没有位数限制。如果换成用硬件电路设计的加法器,就会受到各种硬件资源的制约。 1. #程序:完整的加法器 Carry Ripple adder 2. def add(x,y): 3. while len(x) len(y): x = [False]+x 4. while len(y) len(x): y = [False]+y 5. L=[];Carry=False 6. for i in range(len(x)-1,-1,-1): 7. Carry,Sum=FA(x[i],y[i],Carry) 8. L=L+[Sum] 9. return (Carry, L) 用逻辑做加法-乘法器 * Dr. 沙行勉 * 前面说过,乘法可以用加法和移位操作实现,那么请看使用涟波进位加法器组成的乘法器: 程序示例-程序:乘法器 * Dr. 沙行勉 * 两个输入x和y,分别代表被加数和程序for循环所产生的乘法过程的部分和存放在列表S中。 在每一次循环中,判断y的当前位是否为1,为1就在当前结果S上加被乘数x,即“C,S=add(S,x)”。 如果S和x的加法产生进位,就将其加入列表S,即“if C==True: S=[C]+S”。 每完成一位乘法

您可能关注的文档

文档评论(0)

bbnm58850 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档