编码 9.3分
读书笔记 二进制加法
Vmpy
二进制数的“和”可以由异或门得到,而“进位”可以由与门得到,所以可以把异或门和与门结合起来来完成两个二进制数 A和B的加法.称为“半加器(Half Adder)”,它可以把两个二进制位A 和 B相加,从而得到一个和输出 (简称S) 和一个进位输出 (简称C O )。但大部分二进制数是多于 1位的,半加器不能够把前一步的进位加到本次运算中。

半加器构造

半加器简化图

只能用半加器来计算最右边一列数:即 1加1等于0,进位为1。对于右边第2列数,由于进位的存在,需要加3个数。接下来的几列都有这个问题,每一列二进制位的加法都包括了来自前一列的进位。要把3个二进制数相加,需要按如下方式把两个半加器和一个或门连接起来.
[全加器]要理解它的工作原理,先从最左边第一个半加器的 A 输入和B 输入开始,其输出是一个和及相应的进位。这个和必须和前一列的进位输入 (简称CI) 加起来,然后把它们输入到第二个半加器。第二个半加器的和输出是最后的和。两个半加器的进位输出又输入到一个或门,或门产生了本次加法的进位输出。你可能会想这里还需要一个半加器,这当然是可行的。但当你把所有的可能情况考虑完,你会发现两个进位不可能同时为 1。当两个输入不能同时为 1时,或门已足够用于表示两个进位的加法,此时或门和异或门的功能是相同的。上图可简化表示为下面的方块图,称其为“全加器(Full Adder)”:
全加器构造

全加器简化图

0
《编码》的全部笔记 202篇
豆瓣
免费下载 iOS / Android 版客户端