binary coded decimal

31
1 Binary Coded Decimal Presented By Chung Wai Chow

Upload: sachi

Post on 24-Jan-2016

142 views

Category:

Documents


8 download

DESCRIPTION

COMPUTER ARITHMETIC. Binary Coded Decimal. Presented By Chung Wai Chow. 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. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Binary Coded Decimal

1

Binary Coded Decimal

Presented By Chung Wai Chow

Page 2: Binary Coded Decimal

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.

Page 3: Binary Coded Decimal

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.

Page 4: Binary Coded Decimal

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):

Page 5: Binary Coded Decimal

5

1) BCD Numeric Format

Every four bits represent one decimal digit.

Use decimal values

from 0 to 9

Page 6: Binary Coded Decimal

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

Page 7: Binary Coded Decimal

7

1) BCD Numeric Format

Multi-digit decimal numbers are stored as multiple groups of 4 bits per digit.

Page 8: Binary Coded Decimal

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.

Page 9: Binary Coded Decimal

9

1) BCD Numeric Format

Values represented

b3b2b1b0 Sign and magnitude 1’s complement 2’s complement

0111 +7 +7 +7

0110 +6 +6 +6

0101 +5 +5 +5

0100 +4 +4 +4

0011 +3 +3 +3

0010 +2 +2 +2

0001 +1 +1 +1

0000 +0 +0 +0

1000 -0 -7 -8

1001 -1 -6 -7

1010 -2 -5 -6

1011 -3 -4 -5

1100 -4 -3 -4

1101 -5 -2 -3

1110 -6 -1 -2

1111 -7 -0 -1

Page 10: Binary Coded Decimal

10

2) Algorithms for Addition

1100 is not used in BCD.

Page 11: Binary Coded Decimal

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.

Page 12: Binary Coded Decimal

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

Page 13: Binary Coded Decimal

13

2) Algorithms for AdditionA BCD adder

10010101

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.

Page 14: Binary Coded Decimal

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

Page 15: Binary Coded Decimal

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

Page 16: Binary Coded Decimal

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.

Page 17: Binary Coded Decimal

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

Page 18: Binary Coded Decimal

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

Page 19: Binary Coded Decimal

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

Page 20: Binary Coded Decimal

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

Page 21: Binary Coded Decimal

21

4) Algorithms for Multiplication

1101 Multiplicand M

X 1011 Multiplier Q

1101

1101

0000

1101____

10001111 Product P

Page 22: Binary Coded Decimal

22

4) Algorithms for Multiplication

Multiplicand

Multiplier

Product

Page 23: Binary Coded Decimal

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.

Page 24: Binary Coded Decimal

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

Page 25: Binary Coded Decimal

25

4) Algorithms for Multiplication

Page 26: Binary Coded Decimal

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

Page 27: Binary Coded Decimal

27

5) Algorithms for Division

A logic circuit arrangement implements the restoring-division technique

Page 28: Binary Coded Decimal

28

A restoring-division example

Initially 0 0 0 0 0 1 0 0 0

0 0 0 1 1

Shift 0 0 0 0 1 0 0 0

Subtract 1 1 1 0 1

Set q0 1 1 1 1 0

Restore 1 1

0 0 0 0 1 0 0 0 0

Shift 0 0 0 1 0 0 0 0

Subtract 1 1 1 0 1

Set q0 1 1 1 1 1

Restore 1 1

0 0 0 1 0 0 0 0 0

Shift 0 0 1 0 0 0 0 0

Subtract 1 1 1 0 1

Set q0 0 0 0 1 0 0 0 0 1

Shift 0 0 0 1 0 0 0 1

Subtract 1 1 1 0 1

Set q0 1 1 1 1 1

Restore 1 1

0 0 0 1 0 0 0 1 0

remainderQuotient

First cycle

Second cycle

Third cycle

Fourth cycle

Page 29: Binary Coded Decimal

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.

Page 30: Binary Coded Decimal

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.

Page 31: Binary Coded Decimal

31

References:

Computer Systems Organization & Architecture, Addison Wesley Longman, Inc., 2001

Introduction to Computer Organization 4th Edition. V.Carl hamacher. 1998

http:// www.sfxavier.ac.uk/computing/bcd/bcd1.htm

http:// www.awl.com/carpinelli

Thank you