理解半加器和全加器

发布于:2022-11-29 ⋅ 阅读:(984) ⋅ 点赞:(0)

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

(以十进制的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,结果正确。

本文含有隐藏内容,请 开通VIP 后查看