15th
Last updated
Was this helpful?
Last updated
Was this helpful?
计算机如何做加法?
门电路是计算机硬件层面最基础的设计单元,计算机要想实现加法运算,也要利用这些门电路。根据二进制相加得到的和和进位的特点,可以设计出半加器,实现一个二进制位的运算,如图三所示。两个半加器与一个或门组合,便可得到一个全加器,如图四所示。全加器能接收三个输入,分别是两个加数和一个进位,输出一个和以及一个进位,输出的这个进位可以作为下一个全加器的输入,这样,8 个全加器串联起来就可以实现两个 8 bit 位数的加法了,如图五所示,最后一个全加器的进位输出信号还可以作为是否溢出的标志位。所以说,我们在做整数相加的运算时,判断结果是否溢出是得到了计算机硬件层面的支持的。
但是这样实现的全加器也有缺点,就是计算后一位的结果需要依赖前一位的输出,每一个全加器要从右往左依次进行运算,要知道,每一个全加器包含 5 个门电路,这样就会增加时延,影响计算效率。为此,查尔斯·巴贝奇等人设计了超前进位加法器,一定程度上解决了这个问题,现代 CPU 中普遍使用的都是超前进位加法器。
参考资料: