0
这是我的半加器:如何用半加器构建一个完整的加法器?
void HalfAdder(int a, int b, int * addrCarry, int * addrSum){
*addrCarry = a && b;
*addrSum = a != b;
}
如何对待这种情况,使之成为全加器?
这是我的半加器:如何用半加器构建一个完整的加法器?
void HalfAdder(int a, int b, int * addrCarry, int * addrSum){
*addrCarry = a && b;
*addrSum = a != b;
}
如何对待这种情况,使之成为全加器?
这是全加器采用半加器如何实现的:
所以翻译到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'。 – 2015-03-02 21:20:23
需要两个半加器和一个或门。看看最后的两个草图:http://de.wikipedia.org/wiki/Volladdierer – Deduplicator 2015-03-02 21:09:50