Subtraction/Multiplication

advertisement
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
Download