![](https://csdnimg.cn/release/download_crawler_static/88486104/bg1.jpg)
4 位全加器,是一个组合电路。
程序代码如下:
逐行解释:
9-11:a,b,c 作为加法左边的成员。
18:tmp 作为和的中间寄存器,位数比 a,b 多一位,该多出的那一位可以作为进位位用。
20:tmp 是 5 位,而等式的右边都是小于 4 位的,这样是不能直接赋值的,所以把 a 用并置
符号’&’补成 5 位,而 b 和 ci 在运算过程中会自动补成右边运算操作数的最高位数。(这个
有点像 C 中的不同类型数据运算的转换规则一样)。若 a 不补成 5 位,则会报如下 error:
当然补 b 和 ci 都是可以的,如补 ci:
21:将 tmp 的低 4 位作为和,赋值给和输出 s。
22:将 tmp 的最高为作为进位位,赋值给进位输出 co。