当前位置: 首页 > news >正文

半加器和全加器

目录

1. 核心概念

2. 半加器 (Half Adder - HA)

2.1 功能和输入输出

2.2 真值表

2.3 逻辑公式 (布尔表达式)

2.4 逻辑电路结构

3. 全加器 (Full Adder - FA)

3.1 功能和输入输出

3.2 真值表

3.3 逻辑公式 (布尔表达式)

3.4 逻辑电路结构:

4. 总结对比


我们在这一章来讲解一下加法器的最基础的两个,分别是 半加器 (Half Adder) 和 全加器 (Full Adder) 。它们是构成加法器的基础单元。

1. 核心概念

目的: 执行二进制加法运算。
输入: 二进制位(0 或 1)。
输出: 两个二进制位:和 (Sum, S) 和 进位 ( Carry, C )。
区别:
       半加器: 只能加两个输入位(被加数 A 和加数 B)。它不考虑来自更低有效位的进位输入。
       全加器: 可以加三个输入位(被加数 A、加数 B 和 来自低位的进位输入 C_{in})。它能够处理多位数相加时产生的进位链。

2. 半加器 (Half Adder - HA)

2.1 功能和输入输出

        计算两个单个二进制位(AB)相加的结果。有两个输入位分别是被加数位 A (Augend bit) 和加数位 B (Addend bit); 有两个输出位分别是和位 S(Sum bit)进位输出位 C_{out} (Carry-out bit)S 表示 A+B 的本位结果(不考虑进位输入), C_{out} 表示 A+B 产生的进位。 

2.2 真值表

半加器真值表

ABSC_{out}
0000
0110
1010
1101

2.3 逻辑公式 (布尔表达式)

  • 和 (S):

 S = A \bigoplus B

解释:AB 不同时,和为 1;相同时,和为 0。这正好是异或门 (XOR) 的功能。

  • 进位 (C_{out}):

 C_{out} = A \cdot B

解释:只有当 AB 都为 1 时,才会产生进位。这正好是与门 (AND) 的功能。

2.4 逻辑电路结构

  • 最简单的实现方式:

                使用一个 异或门 (XOR Gate) 计算 S
                使用一个 与门 (AND Gate) 计算 C_{in}

  • 结构图:

3. 全加器 (Full Adder - FA)

3.1 功能和输入输出

        计算三个单个二进制位(AB 和来自低位的进位输入 C_{in})相加的结果。三个输入位分别是被加数位 A(Augend bit)加数位 B (Addend bit)和来自相邻低位进位输入位 C_{in}(Carry-in bit); 有两个输出位分别是和位 S(Sum bit)进位输出位 C_{out}(Carry-out bit)S 表示 A+B+C_{in}的本位结果(考虑进位输入), C_{out} 表示 A+B+C_{in} 产生的进位。 

3.2 真值表

全加器真值表
ABC_{in}SC_{out}
00000
00110
01010
01101
10010
10101
11001
11111

3.3 逻辑公式 (布尔表达式)

  • 和 (S): 

 S = A \bigoplus B \bigoplus C_{in}

    解释:当输入位中有奇数个 1 时,和为 1。三个输入位的异或操作正好实现这个功能。

  • 进位 (C_{out}): 

C_{out} = \left ( A \cdot B \right ) + \left ( C_{in} \cdot \left ( A \oplus B \right ) \right )

  解释: 产生进位只有两种情况:

  1. A\cdot BAB 都为 1(无论 Cin 是 0 还是 1,都会产生进位)。

  2. C_{in} \cdot \left ( A \oplus B \right )C_{in} 为 1,并且 AB 中恰好有一个为 1(此时低位有进位传上来,且 A 和 B 相加的和为 1,导致本位向更高位产生进位)。

推导视角: C_{out} = \left ( A\cdot B \right ) + \left ( A\cdot C_{in} \right ) + \left ( B\cdot C_{in} \right )。这个公式更直观地说明了只要任意两个输入位为 1,就会产生进位。通过布尔代数可以证明这两个公式是等价的(通常使用第一个公式实现,因为它可以利用计算 S 时产生的中间信号 A\oplus B)。

3.4 逻辑电路结构:

  • 使用两个半加器和一个或门实现 (最常用):

    第一个半加器 (HA1) 计算 A + B,得到和 S1 和进位 C1(S1 = A \bigoplus B, C1 = A \cdot B); 第二个半加器 (HA2) 计算 S1 + C_{in},得到最终的和 S (S = S1 \bigoplus C_{in} = A \bigoplus B \bigoplus C_{in}) 和进位 C2  (C2 = S1 \cdot C_{in} = (A \bigoplus B) \cdot C_{in}); 最终进位 C_{out}是 C1 或 C2 的结果 (C_{out} = C1 + C2 = (A \cdot B) + ((A \bigoplus B) \cdot C_{in})),因为如果 A+B 本身产生了进位 (C1),或者 A+B 的和 (S1) 加上 C_{in} 产生了进位 (C2),都会导致向更高位进位。结构图 (基于两个半加器):

  • 直接实现 (使用基本门):

使用两个 异或门 (XOR Gate) 计算 S = A \bigoplus B \bigoplus C_{in} ; 使用两个 与门 (AND Gate) 和一个 或门 (OR Gate) 计算 C_{out} = (A \cdot B) + ((A \bigoplus B) \cdot C_{in});结构图 (直接实现):

4. 总结对比

特性半加器 (HA)全加器 (FA)
输入数量2 \left ( A, B \right )3 \left ( A, B, C_{in} \right )
处理进位不能处理来自低位的进位 (Cin=0)处理来自低位的进位 (Cin)
和输出 (S)S = A\oplus BS = A \bigoplus B \bigoplus C_{in}
进位输出 (C_{out})C_{out} = A\cdot BC_{out} = \left ( A\cdot B \right ) + \left ( A\cdot C_{in} \right ) + \left ( B\cdot C_{in} \right )
核心应用最低有效位 (LSB) 的加法除最低有效位外的所有位加法 (级联构成加法器)
实现基础一个 XOR 门 + 一个 AND 门两个 HA + 一个 OR 门

两个 XOR + 两个 AND + 一个 OR 门

关键点: 全加器是构建多位加法器(如行波进位加法器 Ripple Carry Adder、超前进位加法器 Carry Lookahead Adder)的基础模块。最低位(LSB)因为没有来自更低位的进位输入,通常可以直接使用一个半加器(或者将全加器的 C_{in} 接地设置为 0)。其他所有位都需要使用全加器来处理来自低位的进位输入 C_{in} 并产生进位输出 C_{out}给更高位。

http://www.lqws.cn/news/590077.html

相关文章:

  • Disruptor架构哲学
  • 【机器学习2】正则化regularizaiton(降低模型过拟合)
  • 设备管理的11个指标、七大误区、六大特征
  • muduo
  • 数据结构——线性表的链式存储
  • QT笔记---环境和编译出现的问题
  • Golang的代码结构设计原则与实践与模式应用
  • helm安装配置jenkins
  • 百度轮岗:任命新CFO,崔珊珊退居业务二线
  • Redis-7.4.3-Windows-x64下载安装使用
  • 时空数据挖掘五大革新方向详解篇!
  • 我认知的AI宇宙系列第三期
  • 强化学习概述及学习流程
  • 3D词云图
  • 虚拟机配置过程中的知识点
  • shardingsphere5.2.1与SpringBoot3.X的版本冲突问题
  • 华为云Flexus+DeepSeek征文 | ​​华为云ModelArts Studio大模型与企业AI会议纪要场景的对接方案
  • 具身智能环境的构建和工作(具身智能入门四)
  • Oracle 进阶语法实战:从多维分析到数据清洗的深度应用​(第四课)
  • 贪心算法在C++中的应用与实践
  • Monorepo+Pnpm+Turborepo
  • 数据结构:链表
  • 认识 Spring AI
  • 华为云Flexus+DeepSeek征文|基于华为云Flexus云服务的Dify 快速构建联网搜索助手
  • Zookeeper安装使用教程
  • 产品背景知识——API、SDK、Library、Framework、Protocol
  • guava限流器RateLimiter源码详解
  • SpringBoot -- 自动配置原理
  • 基于Python的GIS-RS多源数据处理(TIF/SHP/NC/...)【20250630】
  • P1967 [NOIP 2013 提高组] 货车运输