理解半加器和全加器

        在这里不分析半加器和全加器的实现方式,主要是以十进制为例,搞明白半加器和全加器的原理和输入输出端口代表的意义。

(以十进制的15+17举例,我们先回到学习十以外加减法的小学时代,需要列出加法竖式,先计算个位,判断有无进位,再计算十位,加上进位之后才能得到结果)

半加器:

        计算15+17时,分开计算个位与十位,下面使用半加器计算个位相加和十位相加,个位相加时虽然输出了进位信号,但如果十位使用的也是半加器(没有进位信号的输入端口),半加器无法接收来自个位相加时提供的进位信号,输出结果会是22。

                                      输入                        输出

半加器(个位)            in1(5)            sum(2)

                                    in2(7)            cout(1)

 

                                       输入                       输出

半加器 (十位)           in1(1)             sum(2)

                                    in2(1)            cout(0)

由上表中可知,最终输出是22,结果错误。

 

全加器:

        下面使用全加器计算个位相加和十位相加,个位相加时产生的进位信号可以输出给十位的全加器,输出结果正确,是32。

                                       输入                      输出

全加器 (个位)           in1(5)            sum(2)

                                    in2(7)            cout(1)

                                    cin(0)

                                       输入                     输出

全加器 (十位)           in1(1)             sum(3)

                                    in2(1)            cout(0)

                                    cin(1)

由上表中可知,最终输出是32,结果正确。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值