全加器Si,Ci表达式的理解

全加器是二进制加法的核心,Si表示第i位的和,由Ai和Bi的异或再与前一位的进位Ci-1异或得出。Ci表示第i位的进位,由Ai和Bi的乘积加上它们异或的结果与Ci-1的合决定。进位发生当本位相加大于等于2或本位加低位进位后大于等于2。表达式CI=(Ai+BI+CI-1)mod2概括了这一逻辑。

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

全加器进位Si,Ci表达式的理解

第i位上的和:SI=Ai⊕Bi⊕Ci-1
第I位上的进位:CI=AiBI+(Ai⊕Bi)Ci-1

在这里插入图片描述

Si

两个二进制数相加,某一位上和的结果有两种1和0;那么在什么样的情况下是0,什么样的情况下是1呢?
上图中的两个二进制数1100110010101010竖式计算时,可有如下步骤:在这里插入图片描述
再结合十进制数相加辅助理解,某一位上的数值=两个数对应位置上的数字相加,再加上进位,进位可能0,可能1;
那么,同样的二进制中,某一位上的数值也是=两个数对应位置上的数字相异或,再与进位异或,进位可能0,可能1;
异或的结果=奇数个1的话,就为1;偶数个1的话,就为0;满足竖式计算时的思路。

Ci

两个二进制数相加,某一位上产生进位的结果有两种1和0;那么在什么样的情况下是0,什么样的情况下是1呢?也就是说,什么样的情况下会产生进位呢?
同样结合十进制数相加思考,产生的进位有两种情况, ①本位相加已经大于等于10;②本位相加未超出10,加上来自于低位的进位1后,大于等于10;

所以来看CI=AiBI+(Ai⊕Bi)Ci-1这个表达式;
AiBI:只有AI、BI均为1时,该项才为1;类似于十进制中的本位相加大于等于10的情况,在这里二进制就是大于等于2;
Ai⊕BI:当AI、BI有且只有一个为1时,该项才为1;
也就是说+两边的表达式,AiBI和(Ai⊕Bi)Ci-1不会同时为1;
AiBI=1时,(Ai⊕Bi)Ci-1一定0,此时因为本位相加大于等于2,所以产生进位;
AiBI=0时,Ai⊕BI=1,若Ci-1=1,那么(Ai⊕Bi)Ci-1=1,此时对应着本位相加未超出2,加上来自于低位的进位1后,大于等于2的情况;若Ci-1=0,那么此位就没有向高位产生进位,CI=0;

所以CI的表达式含义就是本位相加大于等于2本位相加为1,加上来自低位的进位后大于等于2

简单点,进位CI=(Ai+BI+CI-1)mod 2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值