Exercise 1: Adding 10 + 11 With a Ripple-Carry Chain — Possible Solution ==================================================================== GIVEN ------------------------------ 10 (binary, decimal 2) + 11 (binary, decimal 3), using a 2-bit ripple-carry adder built from two full adders. STAGE 0: THE LOW BITS (a0=0, b0=1), cin=0 (nothing carries into the very first column) ------------------------------ full_adder(0, 1, 0): SUM = 0 xor 1 xor 0 = 1 COUT = (0.1) + (0.(0 xor 1)) = 0 + 0 = 0 Stage 0 result: SUM=1, COUT=0 STAGE 1: THE HIGH BITS (a1=1, b1=1), cin = stage 0's own COUT = 0 ------------------------------ full_adder(1, 1, 0): SUM = 1 xor 1 xor 0 = 0 COUT = (1.1) + (0.(1 xor 1)) = 1 + 0 = 1 Stage 1 result: SUM=0, COUT=1 ASSEMBLE THE FINAL RESULT ------------------------------ Final carry-out (from stage 1): 1 Stage 1's SUM (the high result bit): 0 Stage 0's SUM (the low result bit): 1 Result: 101 (binary) CONFIRMING ------------------------------ 101 in binary = 4+0+1 = 5. 2+3=5. Confirmed correct. WHY THIS WORKS AS AN ANSWER ------------------------------ Each stage's full adder is computed explicitly using this chapter's own SUM/COUT formulas, the carry is shown ripping from stage 0's own COUT into stage 1's own cin exactly as this chapter's chaining rule specifies, and the final 3-bit result is assembled and checked against the actual decimal sum rather than just asserted.