Explain how to design a full adder using half adders.
Implement full_adder(a, b, carry_in) using two half-adder operations. Each input is a bit, represented by integer 0 or 1; return [sum_bit, carry_out], with both values also represented as 0 or 1.
a, b, and carry_in are each either 0 or 1[sum_bit, carry_out]def full_adder(a, b, carry_in):