Binary coded decimal (BCD) is a method for representing decimal digits in binary form, with each decimal digit being represented by a 4-bit binary number. BCD is commonly used in digital clocks and calculators to store and display numbers in a human-readable decimal format. Algorithms are required for BCD addition, subtraction, multiplication, and division since standard binary arithmetic can produce invalid results. Addition and subtraction use BCD adders along with 9's complement generation, while multiplication uses an inner loop to perform multiple additions and decimal shifts. Division can be implemented with restoring or non-restoring algorithms using an inner loop for repeated subtraction and shifting.
2. 2
Binary Coded Decimal
Introduction:
Although binary data is the most efficient
storage scheme; every bit pattern represents a
unique, valid value. However, some applications
may not be desirable to work with binary data.
For instance, the internal components of digital
clocks keep track of the time in binary. The
binary value must be converted to decimal
before it can be displayed.
3. 3
Binary Coded Decimal
Because a digital clock is preferable to store the
value as a series of decimal digits, where each
digit is separately represented as its binary
equivalent, the most common format used to
represent decimal data is called binary coded
decimal, or BCD.
4. 4
1. The BCD format
2. Algorithms for addition
3. Algorithms for subtraction
4. Algorithms for multiplication
5. Algorithms for division
Explanation of Binary Coded Decimal
(BCD):
5. 5
1) BCD Numeric Format
Every four bits represent one decimal digit.
Use decimal values
from 0 to 9
6. 6
4-bit values above 9 are not used in BCD.
1) BCD Numeric Format
The unused 4-bit values are:
BCD Decimal
1010 10
1011 11
1100 12
1101 13
1110 14
1111 15
7. 7
1) BCD Numeric Format
Multi-digit decimal numbers are stored as
multiple groups of 4 bits per digit.
8. 8
1) BCD Numeric Format
BCD is a signed notation
positive or negative.
For example, +27 as 0(sign) 0010 0111.
-27 as 1(sign) 0010 0111.
BCD does not store negative numbers in
two’s complement.
11. 11
2) Algorithms for Addition
Two errors will occurs in a standard
binary adder.
1) The result is not a valid BCD digit.
2) A valid BCD digit, but not the correct
result.
Solution: You need to add 6 to the result
generated by a binary adder.
12. 12
2) Algorithms for Addition
A simple example of addition in BCD.
0101
+ 1001
1110
+ 0110
1 0100
5
+ 9
Incorrect BCD digit
Add 6
Correct answer
1 4
13. 13
2) Algorithms for Addition
A BCD adder
1001
0101
0001 = 1
0100 = 4
If the result,
S3 S2 S1 S0, is
not a valid
BCD digit,
the multiplexer
causes 6 to be
added to the
result.
14. 14
A simple example of subtraction
3) Algorithms for Subtraction
0111
+ 1101
0100
(+7)
(- 3)
(+4)
0011 is 3, the one’s complement is 1100.
Each of the computations adds 1 to the one’s
complement to produce the two’s complement
of the number.
1100 + 1 = 1101
The two’s complement of 3 is 1101
15. 15
3) Algorithms for Subtraction
The second change has to do with
complements.
The nine’s complement in BCD, generated
by subtracting the value to be complemented
from another value that has all 9S as its digits.
Adding one to this value produces the ten’s
complement, the negative of the original value.
e.g, the nine’s complement of 631 is
999 – 631 = 368.
368 + 1 = 369 is the ten’s complement
16. 16
The ten’s complement plays the
subtraction and negation for BCD numbers.
3) Algorithms for Subtraction
Hareware generates the nine’s complement of a single BCD digit.
17. 17
Conclusion for addition and subtraction
Using a BCD adder and Nine’s complement
generation hardware to compute the addition
and the subtraction for signed-magnitude
binary numbers
The algorithm for adding and subtracting
as below:
PM’1: US XS, CU X + Y
PM1: CU X + Y’ + 1, OVERFLOW 0
PM’2: OVERFLOW C
18. 18
The algorithm for adding and subtracting
CZ’PM2: US XS
CZPM2: US 0 C’PM2: US X’S, U U’ + 1
2: FINISH 1
19. 19
Example of addition of BCD numbers
USU = XSX + YSY
XSX = +33 = 0 0011 0011
YSY = +25 = 0 0010 0101
PM’1: US 0, CU 0 0101 1000
PM’2: OVERFLOW 0
Result: USU = 0 0101 1000 = +58
20. 20
Example of subtraction of BCD numbers
USU = XSX + YSY
XSX = +27 = 0 0010 0111
YSY = -13 = 1 0001 0011
PM1: CU 1 0001 0100, OVERFLOW 0
CZ’PM2: US 0
Result: USU = 0 0001 0100 = +14
21. 21
4) Algorithms for Multiplication
1101 Multiplicand M
X 1011 Multiplier Q
1101
1101
0000
1101____
10001111 Product P
23. 23
4) Algorithms for Multiplication
Required to use the BCD adder and nine’s
complement circuitry.
In BCD, each digit of the multiplicand may have
any value from 0 to 9; each iteration of the loop
may have to perform up to nine additions. We
must incorporate an inner loop in the algorithm
for these multiple additions.
In addition, use decimal shifts right
operation (dshr), which shift one BCD digit,
or four bits at a time.
24. 24
The BCD multiplication algorithm
1: US XS+YS, VS XS+YS, U 0, i n, Cd 0
ZY0’2: CSU CdU + X, Yd0 Yd0 – 1, GOTO 2
ZY02: i i - 1
3: dshr (CdUV), dshr (Y)
Z’3: GOTO 2
ZT3: US 0, VS 0
Z3: FINISH 1
4) Algorithms for Multiplication
26. 26
Division can be implemented using either a
restoring or a non-restoring algorithm. An
inner loop to perform multiple subtractions
must be incorporated into the algorithm.
5) Algorithms for Division
10
11 ) 1000
11_
10
27. 27
5) Algorithms for Division
A logic circuit arrangement implements the
restoring-division technique
29. 29
5) Algorithms for Division
The restoring-division algorithm:
S1: DO n times
Shift A and Q left one binary position.
Subtract M from A, placing the answer back in A.
If the sign of A is 1, set q0 to 0 and add M back
to A (restore A); otherwise, set q0 to 1.
30. 30
5) Algorithms for Division
The non-restoring division algorithm:
S1: Do n times
If the sign of A is 0, shift A and Q left one
binary position and subtract M from A;
otherwise, shift A and Q left and add M to A.
S2: If the sign of A is 1, add M to A.