无符号数相加溢出_【笔记】二进制数加法半加器全加器

二进制算术运算:

两个二进制数进行加法运算的规则,和十进制数基本相同。唯一的区别在于二进制数是“逢二进一”,而十进制数是“逢十进一”。

我们可以把一位二进制数的加法结果全计算出来,如下:

         0+0=0

             0+1=1

             1+0=1

             1+1=10

整理成表格:

cd2e0bed679553dacb9f38abb38fa72e.png

以上的表格可以重新写成带有前导零的形式,这样每个和就会变成一个二位二进制数,像这样,和数的左边的数叫做进位(carry);右边的数叫做和位(sum);表格如下:

d676c67e9a138fcf95a35b093dccdc33.png

如果把和数的进位与和位拆开,会发现进位跟与门的输出一致;和位跟异或门的输出一致;

5d7e505c4814b2d78f47d6dab2223ca0.png

我们可以将异或门跟与门连接在一起,实现一位二进制数加法电路。

48c5a27072a9d503782a72e5dceaa67e.png

这个加法电路只能计算一位二进制数,无法计算多位二进制数。所以叫做半加器(Half Adder),符号如下:

3e8b7b8c0be40f0c77078ea8bd53a935.png

我们需要对半加器进行改进,使其能进行多位数计算。将两个半加器和一个或门做如下连接:

c724bad4e3ed80ff29d2bf1bc7f9a8e0.png

要理解它的工作原理,首先从最左边第一个半加器的输入A和输入B开始,其输出是一个和位及进位。这个和位必须与前一列的进位输入在第二个半加器里相加,然后第二个半加器的输出和位是最后的结果。两个半加器的进位输出又被输入到一个或门中。

你可能会觉得,这里还需要一个半加法器,这当然是可行的。但是如果你了解了所有的可能性之后,你会发现,两个半加法器的进位输出是不会同时为1的。或门在这里已经足够,因为或门除了在输入都为1的时候以外,其他情况下结果和异或门结果相同。

这个加法电路叫做全加器(Full Adder)符号如下:

40b8aead7c1223a4c056f161b9ad867a.png

P.S.进位输出(Carry Out  简写为CO)

     进位输入(Carry In 简写CI)

----------------------------------0f57eeaf22bb794801ec65dde1465168.png-----------------------------------

9c345d2b58b9ff192b56ed5080d4c138.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值