Binary Addition Binary Multiplication Section 4.5 and 4.7 Topics • Calculations Examples – Signed Binary Number – Unsigned Binary Number • Hardware Implementation • Overflow Condition • Multiplication Unsigned Number Decimal b1 b0 0 0 0 1 0 1 2 1 0 3 1 1 (2-bit example) Unsigned Addition • 1+2= Decimal b1 b0 0 0 0 1 0 1 2 1 0 3 1 1 + Decimal b 1 b 0 1 0 1 2 1 0 3 1 1 Unsigned Addition • 1+3= (Indicates Overflow) Decimal b1 b0 0 0 0 1 0 1 2 1 0 3 1 1 Decimal b 1 b 0 1 1 + 1 0 1 3 1 1 4 1 0 0 (Carry Out) Unsigned Subtraction (1) • 1-2= Decimal b1 b0 0 0 0 1 0 1 2 1 0 3 1 1 + Decimal b 1 b 0 1 0 1 -2 1 0 1 1 0 0 (1’s complement) 0 1 (2’s complement) -1 Unsigned Subtraction (2) • 2-1= Decimal b1 b0 0 0 0 1 0 1 2 1 0 3 1 1 Decimal b1 b0 1 + 2 1 0 -1 1 1 1 0 1 3 Summary for Unsigned Addition/Subtraction • Overflow can be an issue in unsigned addition • Unsigned Subtraction (M-N) – If M≥N, and end carry will be produced. The end carry is discarded. – If M<N, • Take the 2’s complement of the sum • Place a negative sign in front Signed Binary Numbers • 4-bit binary number – 1 bit is used as a signed bit – -8 to +7 – 2’s complement Signed Addition (70+80) b7 0 b6 b5 b4 b3 b2 b1 b0 1 70 0 1 0 0 0 1 1 0 80 0 1 0 1 0 0 0 0 1 0 0 1 0 1 1 0 (Indicates a negative number) 70=21+22+26=2+4+64 80=24+26=16+64 10010110→01101001 →01101010 21+23+25+26=2+8+32+64=106 10010110↔-106 010010110 010010110↔ 21+22+24+27=2+4+16+128=150 Conclusion: There is a problem of overflow Fix: Use the end carry as the sign bit, and let b7 be the extra bit. Signed Subtraction (70-80) b7 b6 b5 b4 b3 b2 b1 b0 70 0 1 0 0 0 1 1 0 -80 1 0 1 1 0 0 0 0 1 1 1 1 0 1 1 0 (Indicates a negative number) 70=21+22+26=2+4+64 80=24+26=16+64 11110110→00001001 →00001010 21+23=10 11110110↔-10 (No Problem) Signed Subtraction (-70-80) b7 b6 b5 0 1 1 -70 1 0 -80 1 0 1 b4 b3 b2 b1 b0 1 1 1 0 1 0 0 1 1 0 0 0 0 1 1 0 1 0 1 0 (Indicates a positive number! A negative number expected.) 70=21+22+26=2+4+64 80=24+26=16+64 101101010 →010010101 → 010010110 010010110 ↔21+22+24+27=2+4+16+128=150 101101010 ↔-150 Conclusion: There is a problem of overflow Fix: Use the end carry as the sign bit, and let b7 be the extra bit. Observations • Given the similarity between addition and subtraction, same hardware can be used. • Overflow is an issue that needs to be addressed in the hardware implementation • A signed number is not processed any different from an unsigned number. The programmer must interpret the results of addition and subtraction appropriately. Four-Bit Adder-Subtractor The Mode Input (1) If M=0, 𝐵0 ⊕ 0= 𝐵0 If M=1, 𝐵0 ⊕ 1= 𝐵0 B0⊕ 𝑀 The Mode Input (2) If M=0, C0 = 0 If M=1, C0 = 1 M=0 B3 B2 B1 B0 0 M=1 𝐵3 𝐵2 𝐵1 𝐵0 1 2’s complement is generated of B is generated! Unsigned Addition When two unsigned numbers are added, an overflow is detected from the end carry. Detect Overflow in Signed Addition Observe 1. The cary into the sign bit 2. The carry out of the sign bit If they are not equal, they indicate an overflow. Two-Bit Binary Multiplier (multiplicand) (multiplier) 𝐴0𝐵0 𝐴0 B0 𝐴0𝐵0 0 0 0 0 1 0 1 0 0 1 1 1 Use an AND gate to multiply A0 and B0 Hardware Correlation A Four-Bit Adder Four-bit by three-bit Binary Multiplier B3 C6 B2 B1 B0 A2 A1 A0 A0B0 0 A0B3 A0B2 A0B1 A1B3 A1B2 A1B1 A1B0 C14 S13 S12 S11 S10 A2B3 A2B2 A2B1 A2B0 C5 C4 C3 C2 C1 S10=A0B1+A1B0 S11=A0B2+A1B1+C1 S12=A0B3+A1B2+C2 S13=0+A1B3+C3 (S1X, where 1 is the first 4-bit adder) C0 Four-bit by three-bit Binary Multiplier