加法器

发布时间 2023-11-01 18:30:34作者: Neolux_Lee

加法器(Adder)

在本文构建一个加法器。

二进制加法

\[\begin{array}{r} &111100\ \ \\ &\ \ 010110 \\ +&\ \ 101101 \\ \hline &1000011 \end{array} \]

在本式中,第一行表示前一位的进位,第二行表示第一个加数,第三行表示第二个加数。最后输出结果。发现每一位的加法需要三个输入和两个输出。

半加器(Half Adder)

构建一个半加器,可以将两个二进制数相加。

半加器有两个输入,两个输出。输入为两个二进制数的某一位,输出为相加的结果和进位。进位为1说明需要进位(Carry),为0说明不需要进位。

真值表

输入1 输入2 进位
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1

观察真值表,发现输出值与输入值之间为异或关系,进位与输入之间为与关系,可以画出:

半加器

全加器(Full Adder)

半加器只能计算两个一位二进制数的和,因为没有加入低位的进位处理。因此在此基础上构建一个全加器,可以计算两个多位的二进制数的和。

全加器有三个输入,两个输出。输入为两个二进制数的某一位和低位的进位,输出为相加的结果和进位。进位为1说明需要进位,为0说明不需要进位。

真值表

输入1 输入2 低位进位(ICarry) 进位(OCarry)
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

相对于输出的值,全加器相当于两个半加器。

全加器(输出值)

之后判断是否需要进位。如果仅两个输入即可进位,则需要进位;如果两个输入的和不足以进位,但加上低位的进位就可以继续进位,那么输出进位也为1. 因此可以将两个与门后接一个或门。如图

全加器

将其改为使用半加器的形式:

全加器(使用半加器)

四位加法器

由四个全加器可以构成一个四位加法器,可以处理两个四位二进制数的加法。

一个四位加法器有9个输入,分别时两个四位二进制数和低位进位;输出有5个,一个四位二进制数和进位。

四位加法器

基本原理便是各位依次相加,并加上对应的进位。