加法是算术运算中最基本的运算,而且加法计算也是计算机要做的唯一工作,减法、乘法和除法都可以利用加法来实现。

这里用基本的逻辑门来搭建一个8位的二进制加法器。我们知道两个1位的比特相加,结果很简单。如下图所示

其中低位叫做加法位,高位叫做进位位。我们将加法位和进位位分开表示,如下图

仔细观察,进位位运算(上右图)实际上就是一个与门计算。而加法位可以用一个或门和一个与非门来实现。我们将或门和与非门的输入连在一起,如下图所示

下表总结了或门和与非门的输出,并同我们想要的结果进行比较。

发现两个门输出结果想与就是我们想要的结果。所以我们把或门和与非门的结果作为一个与门的输入,如下图

实际上,我们回过头去观察加法位的运算就会发现,这是一个异或运算。我们把上图用特定的电气符号来表示,并称为异或门,如下图

这样,两个1位的二进制位相加,加法位由异或门输出,进位位由与门输出,如下图所示(为简化电路,我们将下左图简化为下右图)

这就是一个半加器,因为它的进位并没有参与运算。而全加器需要两个半加器和一个或门,如下图所示

全加器的所有组合在下表列出

同时我们将全加器简化为如下格式

而最终要实现8位二进制加法器就需要8个全加器,连接后如下图

简化后的表示图如下所示

A7-A0和B7-B0是表示两个相加的8位二进制数,进位输出和S7-S0表示最后的和。

最低位的进位为0,最高位的进位作为加法器最高位的输出。

上面所描述的加法计算方式跟现在的计算机真正的加法运算方式大同小异。只不过现在的计算机用晶体管实现,计算速度更快,噪声更小,功耗也更低。搭建一个8位加法器需要144个晶体管(采用行波进位)。

因为每个与门、或门和与非门都需要2个晶体管,因此一个异或门需要6个,一个半加器由一个异或门和一个与门组成,需要8个晶体管;一个全加器由两个半加器和一个或门组成,需要18个晶体管。我们需要8个全加器,一共需要144个晶体管。

上一篇-->编码:隐匿在计算机软硬件背后的语言(2)--二进制

下一篇-->编码:隐匿在计算机软硬件背后的语言(4)--二进制减法器

转载于:https://www.cnblogs.com/hitfredrick/p/6403012.html

编码:隐匿在计算机软硬件背后的语言(3)--二进制加法器相关推荐

  1. 编码:隐匿在计算机软硬件背后的语言(2)--二进制

    1比特是可能存在的最小的信息量,任何小于1比特的内容根本算不上是信息. 信息是指多个可能性中的一种. 最常见的二进制数的表现形式也许就是无处不在的通用产品代码(UPC,Universal Produc ...

  2. 编码——隐匿在计算机软硬件背后的语言上

    编码:隐匿在计算机软硬件背后的语言是讲述计算机工作原理的.不过,你千万不要因为"工作原理"之类的字眼就武断地认为,它是晦涩而难懂的.作者用丰富的想象和清晰的笔墨将看似繁杂的理论阐述 ...

  3. 如何用继电器实现逻辑门(与或非门)- 编码隐匿在计算机软硬件背后的语言读后感

    首先了解一下继电器,说起继电器就不得聊一下电报机.(想直接了解如何实现逻辑门的直接往下翻,不过还是推荐看一下为什么会产生逻辑门,加深印象) 摩尔斯(发明摩尔斯密码的人)在1836年通知专利局,他发明了 ...

  4. 顶级程序员书单系列二:《编码-隐匿在计算机软硬件背后的语言》

    浅谈这本书 如果让我做一个排名,我想这本书,可以在我的顶级程序员书单系列排名第8-10位.这本书讲述了从最简单的加法器到触发器到存储器到一台计算机demo的搭建,整本书的语言都十分通俗易懂,作者简直就 ...

  5. 读书:编码——隐匿在计算机软硬件背后的语言上

    摩斯密码 摩斯密码是由"."(短音)与"-"(长音)所组成的,短促的点信号" .",读" 的 "(Di):保持一定时间的 ...

  6. 【读书笔记】《编码 隐匿在计算机软硬件背后的语言》02 编码与组合

    个人希望通过笔记的方式记录研读IT著作的收获,也算是对自己的一个督促,笔记内容不会照搬原文,尽量以最简洁的形式阐述原文,对原文内容会有所取舍并且加上自己的感想等,供自己之后查阅,毕竟好记性不如烂笔头( ...

  7. 计算机神书『编码:隐匿在计算机软硬件背后的语言』

    在知乎回答了一个关于书籍推荐的问题:有哪些短小精悍的好书推荐? 如果只推荐一本计算机类的神书,那必然是<编码:隐匿在计算机软硬件背后的语言>. 渴望交流是大多数人的天性.在本书中,&quo ...

  8. 编码:隐匿在计算机软硬件背后的语言(7)--存储器组织

    在上一篇文章编码:隐匿在计算机软硬件背后的语言(6)--反馈与触发器中,我们知道一个反向器.两个与门和两个或非门可以构成一个D型电平触发器.它可以存储一位信息,为了表达地更清晰,我们把输入端和输出端重 ...

  9. 《编码:隐匿在计算机软硬件背后的语言(Code:The Hidden Language of Computer Hardware and Software)》读书笔记

    声明 该文章是阅读<编码:隐匿在计算机软硬件背后的语言>一书之后整理出的读书笔记.若有错误,还需继续修正与增删. Preface 作者Charles Petzold是Windows编程界的 ...

  10. 【JS】隐匿在计算机软硬件背后的语言

    在重温<编码:隐匿在计算机软硬件背后的语言>第12章--二进制加法器时,心血来潮用JS写了一个模拟串行加法器. 测试断言工具TestUtils.js function assertTrue ...

最新文章

  1. 计算机课程设计红绿灯,武汉大学电气工程学院计算机课程设计1:红绿灯
  2. visual studio code python环境配置_visual-pushing-grasping环境配置及复现
  3. linux deepin sudo: add-apt-repository:找不到命令 解决办法
  4. Burpsuite技巧之MD5加密密码爆破、带验证码爆破
  5. 一文看懂:互联网产品分析,该如何做?
  6. C#代码规范化(代码风格化)的几个函数
  7. Linux中的存储设备管理
  8. mysql insert 运算_MySql insert插入操作的3个小技巧分享
  9. 【经验分享】h3c模拟器HCL安装问题集锦
  10. Proteus:51仿真入门
  11. 网线制作ppt_制作网线图解讲解.ppt
  12. (论文加代码)基于deap数据集的脑电情绪识别(二分类改为八分类)
  13. Saved Blogs
  14. angr符号执行用例解析——0ctf_momo_3
  15. 利用DCT进行jpg压缩;对图像进行二值化【matlab代码】
  16. cryengine3 C++添加结点,制作插件
  17. WLC-WLC升级(以2504为例)
  18. intellij IDEA更换主题为Darcula后中文项目名称变口(方框)的解决办法
  19. 物流查询然后给快递单号进行备注分享操作方法
  20. 第七周项目2建立链队算法库

热门文章

  1. HDU 1203 I need a offer! (01背包)
  2. 设为首页 添加到收藏夹 (share)
  3. (转)Android text文字阴影设置
  4. 在Windows上删除所有的Oracle安装 和电脑名改变后的设置...
  5. Ubuntu 分卷压缩和解压
  6. 推荐:Windows平台上三款提高工作效率的免费神器!
  7. 真赞!阿里开源的这款分布式事务框架,不愧为民族之光
  8. 国外大神整理的 2019 年 Java 权威开发路线图,Java大神养成记
  9. 详解分布式系统与消息投递(架构师必备)
  10. 2019 年中国互联网企业 100 强揭晓,你的公司排在第几位呢?