c - 如何用半加器构建一个全加器?

标签 c logic

这是我的半加器:

void HalfAdder(int a, int b, int * addrCarry, int * addrSum){
    *addrCarry = a && b;
    *addrSum = a != b;
}

如何将其变成全加器?

最佳答案

这是使用半加器实现全加器的方式: enter image description here

所以翻译成 C 很简单:

void FullAdder(int a, int b, int cin, int * addrCarry, int * addrSum){
    int s1, c1, c2; // For intermediate results
    HalfAdder(a, b, &c1, &s1); // First adder stage
    HalfAdder(cin, s1, &c2, addrSum); // Second adder stage
    *addrCarry = c1 || c2;  // The OR stage
}

关于c - 如何用半加器构建一个全加器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28819405/

相关文章:

c - visual studio watch 数组中的结构成员

c - C 中有很多错误, "redefinition"错误等等

C: XNOR/Exclusive-Nor 门?

c - 未找到 typedef 定义

c++ - 构建与 Dreamweaver 兼容的 C DLL

c - 有人可以向我解释这段代码,尤其是 for 循环吗?

windows - 文件夹锁定的工作原理

php - 程序 : Unfriendly Numbers 中的未识别错​​误

c++ - 给定输入生成真值表?

functional-programming - 如何在 coq 中证明 "~(nat = False)"、 "~(nat = bool)"和 "~(nat = True)"