第2.2章 使用两个“半加器”实现一个“全加器”

2023-11-08

刚才的电路考虑了加法的运算结果可能会有进位(当A和B都为1时),可以作为最低位的运算电路,但不能计算其他位(十位、百位等),因为没有考虑低位的进位结果。因此,只能叫做半加器(Half Adder)。

实际上,一个完整的加法器的输入端有3个:A、B和低位的进位结果CI。
全加器(Full Adder)
这个全加器相当于是计算3个位(A、B、CI)的和。因此,其最终的“和输出”为三个数的异或。进位输出的规律为:3个数中如果有2个或者以上的数为1时,“进位”位就为1.
全加器真值表
A B CI CO S
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1

为了实现这个功能,可以使用两个半加器:

这个一位的全加器应用于个位时,需要将进位输出接到地,即置为0:

将多个“一位全加器”级联起来,可以变成“多位全加器”,上一个全加器的“进位输出”连到下一个全加器的“进位输入”。比如8位全加器如下:
可以简化为:
或者:

同样的,可以将两个8位全加器级联起来,变成一个16位的全加器:

最后:你可能会问:“计算机真的是以这种方式把数字加起来的吗?”
基本上是这样的,但不完全是。
首先,加法器应该做得更快。如果你明白这个电路是如何工作的,你会看到最低位相加
产生的进位作为下一列数相加的一个输入,而第3列的加法又等着第2列加法的进位,依此类
推。加法器总体的速度等于加数的位数乘以单个全加器的速度。这种进位方式称为行波进位。
更快的加法器使用称为先行进位的加法电路,从而加快了加法进程。
第二(但是十分重要),计算机再也不用继电器了!尽管它们曾经用过。建于2 0世纪3 0年
代初的第一批数字计算机使用继电器,后来又用了真空管。现代计算机用晶体管。当用在计
算机中时,晶体管和继电器的功能差不多,但是晶体管速度更快,体积更小,更安静,更省
电,而且还便宜不少。构造一个8位加法器仍然需要1 4 4个晶体管(如果采用先行进位,则需
要更多),但整体电路的体积却小多了。——《编码的奥秘》,第12章。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第2.2章 使用两个“半加器”实现一个“全加器” 的相关文章

  • border-box和content-box最直观的区别和解释

    Chrome浏览器box sizing默认是content box content box就是元素的width和height决定了元素的宽高 这意味着元素的border和padding等不能算在元素的width和height中 paddin
  • python怎么用for循环找出最大值_用for循环语句写一个在输入的十个数字中求最大和最小值的python程序应该怎么写?...

    在输入的十个数字中求最大和最小值的 python 代码 这个需求 在不同时间来看 解题思路不同 所需要的 python 知识点不同 作为萌新的我 为此特意整理了 3 种解法 以及相应的知识点笔记 解法A 不使用列表 min 或 max 只是
  • 笔记:Element UI Dialog弹框 水平垂直居中

    需求 element dialog 默认不是水平居中的 需要改为水平垂直居中 方法一 全局设置 在App vue中添加代码 全局设置 element ui dialog水平垂直居中 el dialog left 50 top 50 tran
  • 超全超详细的安装nvidia显卡驱动教程

    最近想做的事情有点多 感觉卡不够用了 师兄不知道在实验室机房哪个地方找了一个两卡的废旧服务器 开始上手才发现服务器显卡驱动都没装 显卡还是个GTX1060 6G 甜点级别显卡 跑点小东西玩玩 打点小比赛行了 准备工作 安装驱动 1 使用标准
  • udp包最大数据长度是多少

    原文地址 https blog csdn net caoshangpa article details 51530685 每个udp包的最大大小是多少 65507 约等于 64K 为什么最大是65507 因为udp包头有2个byte用于记录
  • 谷粒商城(一)

    谷粒商城 一 1 环境搭建 安装 docker docker 安装 mysql docker 安装 redis 安装配置 git 准备工具 IDEA VsCode 从 gitee 初始化项目 2 创建微服务项目 1 创建项目 2 初始化数据
  • 大疆睿炽Tello EDU无人机python操控之三——使用easyGUI模拟操控界面控制Tello EDU

    使用easyGUI模拟操控界面控制Tello EDU 说到easyGUI这个模块 大家应该都不陌生了 模块名中有个 easy 是的 这代表它用起来很简单 这个模块就是一个能够轻易创建用户界面的工具 所以本篇文章我们将实现使用用户界面来对Te
  • Gateway、Nacos依赖启动问题解决

    今天是2022年开工的第一天 本是摸鱼带薪的一天 最终被一个bug所打扰 这怎么可以呢 新的一年第一个bug记录一下 祝大家 新年快乐 摸摸头 代码样例 报错如下 启动即报错 直接好家伙 下面是排查报错的步骤 相信英语跟我一样不好的同学 翻
  • 全排列算法的c++实现(非递归)

    本文算法出自 梦辽软件 只实现了文中所说的第五种算法 全排列 非递归求顺序 算法 1 建立位置数组 即对位置进行排列 排列成功后转换为元素的排列 2 按如下算法求全排列 设P是1 n 位置编号 的一个全排列 p p1 p2 pn p1 p2
  • Dynamics CRM IFD部署之后遇到的登录问题

    Dynamics CRM IFD部署之后遇到的登录问题 证书问题 共用证书 域控问题 跨域登录 登录后报404 证书问题 共用证书 因为公司只给了一个证书 且UAT环境和生产环境都进行了IFD部署 当在同一个浏览器同时登录UAT和生产环境就
  • COCO数据集annotation内容

    本文转载自 http blog csdn net qq 30401249 article details 72636414 找了很多coco数据集的资料 感觉里面的东西有些还是不清楚 顺便就转载下 instances train2014 j
  • 2020年度全球人工智能十大事件

    当前 新一代人工智能技术在全球蓬勃兴起 迅猛发展 与大数据 区块链 5G等新技术相互融合 相互因应 为经济社会发展尤其是数字经济发展注入新动能 正在深刻改变社会生产生活方式 与此同时 如何在新技术变革浪潮中始终立于主动 实现人工智能等前沿科
  • 机器学习基础篇-数据清洗

    Capture 1 在机器学习的工作流中 数据清洗环节尤为重要 接下来首先让我们看一下数据预处理的流程图 总的来说 主要包含下面三大块 收集数据 标注数据 提升数据质量 Capture 2 NO 1 Data Errors 所谓数据错误 就
  • 【2023】Nacos下载与安装配置(2.2.3版本示例)

    目录 1 Nacos概述 2 下载地址和版本 2 修改配置文件 2 1 配置鉴定密钥 自定义密钥 2 2 配置数据库 3 启动 4 项目注册 4 1 配置yml文件 4 2 在启动类上加入注解 4 3 使用 bat文件启动 需要学习naco
  • 【WIFI】802.11AX(WIFI6)无线协商速率计算

    从2019年末的iphone11系列开始 到后来的三星S10 在手机参数中总会有WIFI6这么一条参数 这里的WIFI6就是802 11的一个比较新的协议规范 802 11AX 因为笔者软件出生 对射频了解的不多 基本上也是靠查查找到 学习
  • 解决stylelint报错:Expected double quotes

    目录 背景 处理 背景 问题原因 stylelint对css期望引用时使用双引号 解决方法 修改stylelint 中css引入图片必须使用双引号的检查 注意 只希望修改掉stylelint 中css用url引入图片必须使用双引号的检查 而
  • stable diffusion webui 安装部署(linux系统)

    文中部署stable diffusion webui所使用的机器是腾讯云服务器linux系统 centos7 一 环境准备 在这里使用anaconda安装 优势就是可以方便地安装和管理软件包 同一系统上可以同时使用不同版本的 Python
  • Python数据分析之Excel

    openpyxl库 1 openpyxl概述 2 Excel写入 2 1 新建 2 2 添加数据 2 3 单元格格式 3 Excel读取 4 openpyxl操作Excel之CRUD 4 1 查 4 2 改 4 3 删 1 openpyxl
  • MyEclipse连接mysql报错

    将driverclassname 换为 com mysql jdbc Driver 成功连接

随机推荐

  • 工具网站大汇总!!!

    目录 1 翻译类 2 学术类 3 搜索类 4 术语类 5 在线工具 1 翻译类 Google翻译 https translate google cn 必应翻译 http cn bing com translator 百度翻译 https f
  • visual studio:调试时最好不要编辑,否则断点可能不会命中

    在用vs调试unity时 发现断点不会命中 在删除所有断电后重新打断点 重新运行 断点命中了 猜测原因是在调试过程中编辑过代码 但是没有保存 可能保存了 然后后续打断点出现了问题 下图不起作用 暂时没有看到有比较好的帖子 根据workflo
  • 符号“∑”和“Π”的用法。

    符号 和 的用法 ecnelises posted 2011年2月06日 07 33 in 计算机 with tags 公式 数学 级数 记号 6492 阅读 在数学中 符号 和 分别用来表示求和与求积 首先是函数的累积求和 n取 m k
  • Java多线程Callable方法详解

    多线程实现方式转载自https blog csdn net bandenger article details 81637034 重点看Callable方法 以下内容是Callable方法实现多线程过程中涉及到的概念 ExecutorSer
  • java sql server 连接异常

    但1433端口号不可用 程序报错 com microsoft sqlserver jdbc SQLServerException 到主机 的 TCP IP 连接失败 java net ConnectException Connection
  • ubuntu中cmake编译arm linux应用程序实现

    CMake是一个跨平台的安装编译工具 使用起来非常简单 在开发arm linux过程中主要用它来生成makefile 进而根据makefile生成可执行文件 下面举一个简单的例子介绍下CMake的用法 bulid src strlen c
  • 滚动条事件window.onscroll

    获取页面某一元素的绝对X Y坐标 var X ElementID offset top var Y ElementID offset left 获取相对 父元素 位置 var X ElementID position top var Y E
  • Java基础学习一----命令提示符常用指令

    cmd命令提示符 Command 常用指令 cd gt 跳转 cd gt 跳转到上一级地址 C D E gt 跳转到C D E盘 dir gt 目录directory cls gt 清屏 clear screen
  • redis-benchmark(压力测试)

    redis benchmark 一 redis benchmark exe 二 redis benchmark命令 三 redis benchmark压力测试 我的redis是安装在windows系统的 linux系统用法都一样 一 red
  • 解决问题记录14:若依微服务版本报错记录

    1 网关启动报错 Failed to bind properties under spring cloud sentinel datasource ds1 nacos rule type to com alibaba cloud senti
  • Python内存缓存实现

    Python内存缓存实现 内存缓存是一种常用的优化技术 它可以将计算结果存储在内存中 以避免重复计算 提高程序的性能 在Python中 我们可以使用装饰器来实现内存缓存功能 本文将介绍如何使用Python实现一个简单的内存缓存 并提供相应的
  • VMware 虚拟机安装Linux(Ubuntu)系统教程

    VMware 虚拟机安装Linux Ubuntu 系统教程 1 准备的工具 2 虚拟机中新建Ubuntu系统 1 准备的工具 1 首先安装VMware 虚拟机软件 2 在linux Ubuntu官网下载iso镜像文件或者我放了个百度云盘的链
  • 设计模式-多业务,统一入口

    比如对接一些第三方 会有异步通知 或者在第三方设置唯一回调接口 或者统一验签等场景 这个时候可能就需要我们搞一个统一入口来处理不同的业务 1 定义统一入口 RestController RequestMapping value notify
  • GitHub和Gitee的源码下载

    1 使用clone命令下载 如果本地安装了Git环境的话 可以直接在命令行中使用git clone命令把仓库中的文件全部下载到本地 通过GitHub下载源码 执行如下命令 git clone https github com git 其中后
  • BigDecimal详解

    文章目录 前言 一 BigDecimal类 二 常用方法 1 构造方法 2 基本的运算 加法 减法 乘法 除法 3 保留小数 精确到几位 4 舍入的类型 ROUND UP向上舍入 ROUND DOWN向下舍入 ROUND CEILING正向
  • iOS import包

    Frameworks Frameworks 顾名思义就是框架 是第三方打包完成看不到源码 可以直接使用的 在项目中引用方式 OC 引用某一个文件 Frameworks一般会提供一个h文件引用全部其他文件 import
  • 【100天精通python】Day27:文件与IO操作_CSV文件处理

    目录 专栏导读 1 CSV文件格式简介 2 csv模块的使用方法 3 读写CSV文件的示例 3 1 读取CSV文件示例 3 2 写入CSV文件示例 4 CSV文件的常用数据处理 4 1 读取CSV文件的特定列 4 2 读取CSV文件的特定行
  • maven打包时和 deploy时候将不会 依赖包含在生成的项目 jar中方法

    用 provided
  • Python模块学习:glob 文件路径查找

    文章转载自 伯乐在线 原文出处 Darkbull Python模块学习 glob 文件路径查找 glob模块是最简单的模块之一 内容非常少 用它可以查找符合特定规则的文件路径名 跟使用windows下的文件搜索差不多 查找文件只用到三个匹配
  • 第2.2章 使用两个“半加器”实现一个“全加器”

    刚才的电路考虑了加法的运算结果可能会有进位 当A和B都为1时 可以作为最低位的运算电路 但不能计算其他位 十位 百位等 因为没有考虑低位的进位结果 因此 只能叫做半加器 Half Adder 实际上 一个完整的加法器的输入端有3个 A B和