《Code》读书笔记12:二进制加法器



读了《Code》第12章:二进制加法器,用自己的方式来总结一下。

计算机CPU本质上也就是集成电路,那么CPU是怎么实现最基本的加法的呢?

在电路中,只有2种状态(开、关),对应于二进制中的1和0;
但是我们可以把这2种状态组合起来,构造成多种逻辑关系。
与门 AND        (通过串联实现)
或门 OR           (通过并联实现)
非门 N             (通过反向器实现)
与非门 NAND  (串联的反向)
或非门 NOR     (并联的反向)
异或门 XOR      (正向加反向的串联)

电路不能做算术运算(+-*/),只能通过做逻辑运算来实现算术运算。

对于1位的2个二进制相加共有4种组合形式:
0 + 0 = 00  //上一位进位为0
0 + 1 = 01  //上一位进位为0
1 + 0 = 01  //上一位进位为0
1 + 1 = 10  //上一位进位为0
我们可以看到输出由两部分组成:加和输出,进位输出。
加和输出的结果是(0110),我们可以观察出来是“异或”的结果。
进位输出的结果是(0001),我们可以观察出来是“与”的输出。

在这里还没有完,因为我们还要考虑到前1位的进位。上述的进位输入是0。
假设进位输入是1:
0 + 0 = 00 + 1(上一位进位) = 01
0 + 1 = 01 + 1(上一位进位) = 10
1 + 0 = 01 + 1(上一位进位) = 10
1 + 1 = 10 + 1(上一位进位) = 11

借用书中的一个图:

输入端A和B先逻辑运算一次(异或+与),然后"和输出"和"上一位进位输入"逻辑运算一次(异或+与),两次进位再做或运算,最终得出的结果还是由两部分组成: 加和输出,进位输出。
这只是其中1位的二进制输出结果,如果是8位二进制,就需要将上图中的电路集成起来,形成8位二进制加法器。

我想,最重要的一点就是:集成电路通过做逻辑运算转换成算术运算。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值