【问题标题】:How do I build a full adder with a half adder?如何用半加器构建全加器?
【发布时间】:2015-03-02 21:05:33
【问题描述】:

这是我的半加法器:

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

我怎样才能把它变成一个全加器?

【问题讨论】:

标签: c logic


【解决方案1】:

这是使用半加器实现全加器的方式:

所以翻译成 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
}

【讨论】:

  • Nitpick:建议不要使用 cin 作为变量名,因为它可能会与 C++ cin 混淆。
猜你喜欢
  • 2016-03-11
  • 1970-01-01
  • 2014-11-10
  • 1970-01-01
  • 1970-01-01
  • 2012-05-16
  • 2016-07-10
  • 2013-11-18
  • 2023-03-27
相关资源
最近更新 更多