如何使用半加法器构建完整加法器?

时间:2015-03-02 21:05:34

标签: c logic

这是我的半加法器:

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

我如何接受并将其作为全额加法器?

1 个答案:

答案 0 :(得分:2)

这是使用半加器实现全加器的方式: 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
}