半加器、全加器的实现和应用——《计算机科学概论》原书第七版 重点内容分析

门电路实现半加器和全加器的原理

  • 门和电路
  • 问题分析
  • 半加器
  • 全加器

门和电路

如果想详细了解请访问门和电路——组合电路基本原理

问题分析

任何减法都可以转化为加法,对于二进制的加减法的运算可以查看二进制及原码、反码、补码《计算机科学概论》原书第七版 重点内容分析,多个数的加法我们可以拆分为两个数的加法。
研究两个数的加法,我们可以使用逻辑门来实现半加器和全加器。

半加器

半加器可以实现二进制中一个位的加法运算。
我们只需要考虑一个位(或者最低位)
实现半加器的逻辑电路真值表如下(A、B代表两个被操作数,Sum表示加和,Carry表示进位):

A 0 B0 Sum Carry
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1

观察真值表,我们可以直接用异或门计算sum,然后使用与门计算Carry。
用布尔表达式可以写为:Sum=A·B Carry= A ⊕ B

全加器

半加器是有局限的,主要的原因是只能实现最低位的加法计算,如果涉及到进位,那么半加器是无法实现的,因此,我们引入了全加器。
全加器的真值表如下(C_in代表进位)

A1 B1 C_in Sum Carry
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

C_in的值是上一位的全加器(也就是carry)直接传递过来的。
在全加器中我们为了求得Sum和carry,需要使用两个半加器和一个或门,计算过程如下:

  1. 将A1和B1进行输入半加器,获得S1和C1。
  2. 将S1和C_in输入半加器获得S2和C2,Sum即为S2。
  3. 将C2与C1输入或门得到Carry.

你可能感兴趣的:(计算机基础,学习笔记)