二进制加法器c语言程序,二进制加法器电路框图

二进制加法器是电子电路中用于执行二进制加法的组件,由基本逻辑门(如AND和XOR)构建。半加器处理两个二进制位的加法,而全加器增加了进位输入和输出,使得能够级联多个全加器以处理多位加法。进位前瞻加法器通过减少进位传播延迟提高了加法速度。这种电路在计算机硬件和微处理器中至关重要,用于执行算术运算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

二进制加法器是半加器和全加法器形式的运算电路,用于将两个二进制数字加在一起.

另一种常见且非常有用的组合逻辑电路,可以使用一些基本的逻辑门允许它将两个或多个二进制数加在一起是二进制加法器。

一个基本的二进制加法器电路可以用标准的 AND 和 Ex-OR 门允许我们将两个单位二进制数“加”到一起, A 和 B 。

添加这两个数字会产生一个名为 SUM 的输出,另一个输出称为 CARRY 或 Carry-out , (C OUT )位根据二进制加法规则。 二进制加法器的主要用途之一是算术和计数电路。考虑下面简单地添加两个denary(基数为10)的数字。

123

A

(Augend)

+789

B

(加数)

912

SUM

从我们在学校的数学课程中,我们了解到每个数字列都已添加从右侧开始,每个数字的加权值取决于它在列中的位置。

当每个列加在一起时,如果结果大于或等于10,则生成进位,基数。然后将这个进位添加到左侧添加下一列的结果,依此类推,简单的学校数学的添加,添加数字和携带。

添加二进制数是完全相同的想法作为将十进制数加在一起的但是这次只有当任何列中的结果大于或等于“2”(二进制的基数)时才生成进位。换句话说, 1 + 1 会创建一个进位。

二进制加法

二进制加法遵循这些相同的基本规则。上面的否定加法除了二进制外,只有两位数,最大位为“1”。因此,当添加二进制数时,当“SUM”等于或大于2(1 + 1)时会生成执行,并且这将成为任何后续添加的“CARRY”位,然后传递到下一列进行添加,因此上。考虑下面的单位添加。

两位的二进制加法

0

0

1

1

+ 0

+ 1

+ 0

+ 1

0

1

1

(carry)1←0

当两个单位, A 和 B 加在一起时,添加“0 + 0”,“0 + 1”和“1 +” 0“结果为”0“或”1“,直到您到达”1 + 1“的最后一列,然后总和等于”2“。但二进制不存在于二进制中,二进制中的2等于 10 ,换句话说,总和为零加上一个额外的进位。

然后操作一个简单的加法器需要两个数据输入,产生两个输出,等式的Sum(S)和一个Carry(C)位,如图所示。

二进制加法器框图

0d20fc267afff9a465543e3b68a524d6.gif

对于上面的简单1位加法问题,可以忽略得到的进位,但是你可能已经注意到了有关加法的其他内容这两位,它们的二进制加法的总和类似于异或门。如果我们将这两个位标记为 A 和 B ,则生成的真值表是两位的总和,但没有最终进位。

2输入异或门

符号

真相表

9407bcecab016d32545ac1ae3cda257f.gif

2输入异或门

B

A

S

0

0

0

0

1

1

1

0

1

1

1

0

我们可以从真值表中看到如上所述,当任一输入处于逻辑“1”时,异或门仅产生输出“1”,而不是与前两位的二进制加法相同。然而,为了执行两个数字的加法,微处理器和电子计算器需要额外的进位来正确计算方程式,因此我们需要重写先前的求和以包括两位输出数据,如下所示。

00

00

01

01

+00

+ 01

+ 00

+ 01

00

01

01

10

从上面的等式我们现在知道一个异或门将当“EITHER”输入为逻辑“1”时,只产生输出“1”,因此当“BOTH”输入 A 和 B 处于逻辑“1”。当输入 A 和 B 均为“1”时,一个适合该账单的数字门完美地产生输出“1”( HIGH)是标准AND门。

2输入AND门

符号

真值表

fac9f5fe355377771766b198083190ba.gif

2-input AND Gate

B

A

C

0

0

0

0

1

0

1

0

0

1

1

1

通过combinin g带有 AND 门的异或门产生一个简单的数字二进制加法器电路,通常称为“Half Adder”电路。 / p>

半加法器电路

半加器是一个逻辑电路,对两个二进制数字执行加法运算。半加器产生一个和两个二进制数的进位值。

带进位的半加法真值表

符号

真值表

676b75d5781777ea0ddde717a30d175a.gif

B

A

SUM

CARRY

0

0

0

0

0

1

1

0

1

0

1

0

1

1

0

1

从半加器的真值表中我们可以看到SUM( S )输出是异或门的结果,执行( Cout )是 AND gate。然后半加法器的布尔表达式如下。

对于SUM位:

SUM = AXORB = A ⊕ 乙

对于CARRY位:

CARRY = AANDB = AB

一个主要当用作二进制加法器时, Half Adder 电路的缺点是,当将多个数据位加在一起时,没有提供前一电路的“进位”。

例如,假设我们想要将两个8位字节的数据相加,任何产生的进位都需要能够从最低有效位(LSB)开始“波动”或移过位模式。半加器可以做的最复杂的操作是“1 + 1”,但由于半加器没有进位输入,因此得到的附加值是不正确的。解决此问题的一种简单方法是使用Full Adder型二进制加法器电路。

全加器电路

> Full Adder和之前的Half Adder是全加器有三个输入。与以前相同的两个单位数据输入 A 和 B 加上一个额外的进位( C-in )输入以接收来自前一阶段的进位,如下所示。

Full Adder Block Diagram

260dc7b926e5f4749cf58c40c7fcfec5.gif

然后全加器是合乎逻辑的对三个二进制数字执行加法运算的电路,就像半加法器一样,它也会产生一个进位到下一个加法列。然后 Carry-in 可能来自不太重要的数字,而 Carry-out 表示进位到更高位数。

在许多方面,全加器可以被认为是连接在一起的两个半加法器,前半部加法器将其进位传递到后半部加法器,如图所示。

全加法逻辑图

d2d9d8d04323533769dd6f093b2be5af.gif

由于上面的全加器电路基本上是连接在一起的两个半加法器,因此全加器的真值表包含一个附加列考虑进位, C IN 输入以及总和输出 S 和进位-out, C OUT 位。

带有进位的全加法真值表

符号

真值表

a3607fac5d6b3604ee5dc172c4c45047.gif

C-in

B

A

总和

C-out

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

然后全加器的布尔表达式如下。

对于SUM( S )位:

SUM =(AXORB)XORCin =(A ⊕ B)⊕ Cin

对于CARRY-OUT( Cout )位:

CARRY-OUT = AANDBORCin(AXORB)= A.B + Cin(A ⊕ B)

n位二进制加法器

我们已经看到上面的单个1位二进制加法器可以是从基本逻辑门构造。但是,如果我们想要将两个 n位数字加在一起,那么 n 数量的1位全加器需要连接或“级联”在一起产生什么是称为纹波进位加法器。

“纹波进位加法器”只是“ n ”,1位全加器与每个完整级联加法器表示长二进制加法中的单个加权列。它被称为纹波进位加法器,因为进位信号通过二进制加法器从右到左产生“纹波”效应(LSB到MSB)。

例如,假设我们想要将两个4位数字“加”在一起,第一个全加器的两个输出将提供加法的第一位数字和( S )加上a进位位作为下一个二进制加法器的进位数。

链中的第二个二进制加法器也产生求和输出(第2位)加上另一个进位位,我们可以继续向组合中添加更多的完整加法器以添加更大的数字,将第一个完整二进制加法器的进位位输出链接到下一个完整加法器,依此类推。下面给出了一个4位加法器的例子。

一个4位纹波进位加法器

c483be5be4a8473ecbbbde5922475be2.gif

将1位二进制加法器“级联”以添加大二进制数的一个主要缺点是,如果输入 A 且 B 更改,其输出的和将无效,直到任何进位输入已“链接”到链中的每个完整加法器,因为总和的MSB(最高有效位)必须等待来自进位输入的任何更改LSB(不太重要的位)。因此,在加法器的输出响应其输入的任何变化导致累积延迟之前将存在有限的延迟。

当添加的位的大小不是太大时,例如,4或8位,或加法器的求和速度并不重要,这种延迟可能并不重要。但是,当比特的大小较大时,例如在多比特加法器中使用的32或64比特,或者在非常高的时钟速度下需要求和时,这种延迟可能会变得非常大,因为在一个加法过程中没有正确地完成加法过程。时钟周期。

这个不需要的延迟时间称为传播延迟。当 n位加法器将两个并行数加在一起时,另一个问题称为“溢出”,其总和大于或等于 2 n

一种解决方案是直接从 A 和 B 输入生成进位输入信号,而不是使用上面的纹波排列。然后产生另一种类型的二进制加法器电路,称为Carry Look Ahead Binary Adder,其中使用进位超前逻辑可以大大提高并行加法器的速度。

优点进位前瞻加法器的一个特点是,为了产生正确的SUM,进位前瞻加法器所需的时间长度与操作中使用的数据位数无关,这与并行纹波加法器需要完成SUM的周期时间不同这是加数中总位数的函数。

具有进位超前功能的4位全加器电路可作为标准IC封装以TTL 4位二进制加法器74LS83的形式提供或者74LS283和CMOS 4008可以将两个4位二进制数加在一起并生成 SUM 和 CARRY 输出,如图所示。

74LS83逻辑符号

ef58f8957f57756633c79a1688daa15e.gif

二进制加法器摘要

我们在本教程中已经看到二进制加法器那个加法器电路c用于“加”两个二进制数,产生“执行”。在最基本的形式中,加法器可以通过将异或门与 AND 门连接在一起来产生半加法器电路。可以组合两个半加法器来产生Full Adder。

有许多4位全加器IC可用,例如74LS283和CD4008。这将添加两个4位二进制数并提供一个额外的输入进位,以及一个输出进位,因此您可以将它们级联在一起以产生8位,12位,16位加法器,但进位传播延迟可能是大型n位纹波加法器中的主要问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值