zoukankan      html  css  js  c++  java
  • 2、论二进制加法器

    一个简单的二进制加法如下:

    + 0 1
    0 00 01
    1 01 10

    我们现在需要把它的结果分为两位,一个是加法位,一个是进位位。分别如下

    +加法位 0 1
    0 0 1
    1 1 0
    +进位位 0 1
    0 0 0
    1 0 1

    进位位的逻辑跟我们上一章介绍的逻辑与门一样,这就很好办了。

    加法位跟或门逻辑较相似,除了右下角的0逻辑不一样。也跟与非门较相似,除了左上角的0的逻辑不一样。我们把它们组合下

    现在的输入输出情况如下:

    输入A

    输入B 或门输出 与非门输出 想要的结果
    0 0 0 1 0
    0 1 1 1 1
    1 0 1 1 1
    1 1 1 0 0

    从结果中看出,可以把或门和与非门输出进行与门逻辑组合,就得到了我们的加法位的正确输出结果

    这种组合就叫做异或门。

    现在我们加法的加法位和进位位都可以用电路来表示了,现在组合成的加法器如下:

    这种组合就满足了我们对一位二进制的加法的需求,下面我们用下面这种简单的表达方式表达上面的加法器,比较简单明了:

    为什么叫半加器呢,因为目前位置它只能计算一位的加法,而大多数情况下,我们需要计算多位的二进制加法,它现在还不成熟。

    多位加法中,除了第一位,后面每一位的加法都可能跟前面1位的的进1数进行相加。因此除了计算它本身的加法外,还要跟进位进行相加。我们现在把逻辑组合如下

    现在我们可以得出一个完整的二进制加法中任意一位的逻辑了。既然它成熟了,我们可以把它叫做全加器了。如下:

    一个全加器就完成了。

    每个全加器的进位输出都是都是后面一位的进位输入,一个串一个,第一个加法的进位输入为0.最后一个进位输出,判断有没溢出。

    以8位为单位,我们也可以做16位加法,只要两个8位相连就可以了。

    每个与门,或门,与非门都需要两个继电器。一个异或门需要6个继电器,一个半加器由一个异或门和一个与门组成,那就是8个继电器。每个全加器由两个半加器和一个或门组成,所以需要18个继电器。而我们计算一个经常使用的8位加法的时候,我们就需要144个继电器。

  • 相关阅读:
    静态内部类与非静态内部类之间的访问
    面向对象蚂蚁爬杆的问题
    关于Clone 的方法使用
    关于谁来参加会议这个题目的卫条件
    String类的基本用法与注意点,StringBuffer类的用法
    Smarty模板Windows下写代码 放到CentOS6.5无法正确解析
    [转]Linux(centOS6.5)下SVN的安装、配置及开机启动
    [转]Centos6.5使用yum安装mysql—配置MySQL允许远程登录
    [转]-bash: wget: command not found的两种解决方法
    [转]VMware 出现下述错误: Application failure. hr=0x80040101:Failed to initialize virtual machine.
  • 原文地址:https://www.cnblogs.com/Garin/p/6684720.html
Copyright © 2011-2022 走看看