Download EE332 Lecture 2 PowerPoint Slides

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Approximations of π wikipedia , lookup

Elementary mathematics wikipedia , lookup

Location arithmetic wikipedia , lookup

Arithmetic wikipedia , lookup

Addition wikipedia , lookup

Positional notation wikipedia , lookup

Transcript
HEXADECIMAL NUMBERS
Code
Introduction to
Microprocessors
Number Systems and
Conversions
WRITING one’s and zero’s can be error prone when dealing with large
numbers. IBM came up with the following method of dealing with these
numbers. BASE 16 with digits 0 - 15 in base 10 are represented by the
following notation in Hexadecimal.
016 = 00002 = 010
116 = 00012 = 110
216 = 00102 = 210
316 = 00112 = 310
416 = 01002 = 410
516 = 01012 = 510
616 = 01102 = 610
716 = 01112 = 710
816 = 10002 = 810
916 = 10012 = 910
A16 = 10102 = 1010
B16 = 10112 = 1110
C16 = 11002 = 1210
D16 = 11012 = 1310
E16 = 11102 = 1410
F16 = 11112 = 1510
No. 1-1 9/6/00
Base 16 Conversion
EXAMPLE
Introduction to
Microprocessors
Number Systems and
Conversions
Convert A716 to binary
Note: This is easy because of the relationship between the two bases
A = 1010
7 = 0111
Therefore 0A7H or $A7 = 10100111
Note leading 0 before A.
Since this is a number a different base than base 10,
absence of the zero may confuse a compiler. Therefore it is
customary to add the leading 0 to any hex character that
begins with a letter of the alphabet
(A,B,C,D,E,F) !! These are NUMBERS in base 16 !!
No. 1-2 9/6/00
HEXADECIMAL TO DECIMAL
Introduction to
Microprocessors
Number Systems and
Conversions
• Similar Rules as to those in binary to decimal
– Convert to binary then weighted multiplication -OR– Leave in HEX and use HEX multiplication
• EXAMPLE (repeated multiplication)
$F8E6H = F(16)3 + 8 (16)2 + E(16)1 + 6(16)0
= 15(16)3 + 8 (16)2 + 14(16)1 + 6(16)0
= 61,440 + 2048 + 224 +6
= 63,718
No. 1-3 9/6/00
DECIMAL TO HEXADECIMAL
Introduction to
Microprocessors
Number Systems and
Conversions
• Similar Rules as to those in decimal to binary
Repeated HEX division
• EXAMPLE (repeated division)
• Divisors are for 16 binary digits (4 HEX)
247910 =
2479/16 = 154 remainder 15 or F
154/16 = 9
remainder 10 or A
9/16
remainder 9 or 9
= 9
Answer = 9AFH
No. 1-4 9/6/00
DECIMAL TO HEXADECIMAL
ALTERNATE
Introduction to
Microprocessors
Number Systems and
Conversions
• Same EXAMPLE (but weighted division)
• Divisors are for 16 binary digits (4 HEX)
4096, 256, 16, 1
247910 =
2479/256 = 9 remainder .68359375 x256 =
175/16 = 10 or A remainder .9375 x 16 =
15/1
= 15 or F
Answer = 9AFH
No. 1-5 9/6/00
BINARY CODES
BCD
DECIMAL 8421
0
0000
1
0001
2
0010
3
0011
4
0100
5
0101
6
0110
7
0111
8
1000
9
1001
10 0001 0001
11 0001 0010
....
98 1001 1000
99 1001 1001
4 Bit BCD CODES
BINARY
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100010
1100011
7421
0000
0001
0010
0011
0100
0101
0110
1000
1001
1010
Introduction to
Microprocessors
Number Systems and
Conversions
6311 5421
0000 0000
0001 0001
0011 0010
0100 0011
0101 0100
0111 1000
1000 1001
1001 1010
1011 1011
1100 1100
5311
0000
0000
0011
0100
0101
1000
1001
1011
1100
1101
5211
0000
0001
0011
0101
0111
1000
1001
1011
1101
1111
No. 1-6 9/6/00
MORE 4-BIT BCD CODES
Decimal
0
1
2
3
4
5
6
7
8
9
4221
0000
0001
0010
0011
1000
0111
1100
1101
1110
1111
Introduction to
Microprocessors
Number Systems and
Conversions
3321 2421 84/2/1 74/2/1
0000 0000 0000 0000
0001 0001 0111 0111
0010 0010 0110 0110
0011 0011 0101 0101
0101 0100 0100 0100
1010 1011 1011 1010
1100 1100 1010 1001
1101 1101 1001 1000
1110 1110 1000 1111
1111 1111 1111 1110
The / is subtract
weight
No. 1-7 9/6/00
5-BIT CODES
Decimal 2-out of-5
0
00011
00000
1
00101
00001
2
00110
3
01001
4
01010
10000
5
01100
10000
11110
01000
7
10010
8
10100
Introduction to
Microprocessors
Number Systems and
Conversions
63210 Shift-Counter 86421 51111
00110
00000
00000
00011
00001
00001
00101
01001
01010
00011
00111
01111
00010 00011
00011 00111
00100
01100
6
11000
10010
10100
11111
10001
11100
11000
00101
10001
01001 11100
1-8 9/6/00
10000 No.
11110
OTHER CODES
Introduction to
Microprocessors
Number Systems and
Conversions
• Alphanumeric Codes
– ASCII CODE
– EBCDIC CODE
– UNICODE
7 BITS
8 BITS
16 Bits
No. 1-9 9/6/00
ASCII CODE
Part 1
b3b2 b1b
Introduction to
Microprocessors
Number Systems and
Conversions
Row
(hex)
000
0
001
1
010
2
011
3
100
4
101
5
110
6
111
7
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
NUL
SOH
STX
ETX
EOT
ENQ
ACK
BEL
BS
HT
LF
VT
FF
CR
SO
SI
DLE
DC1
DC2
DC3
DC4
NAK
SYN
ETB
CAN
EM
SUB
ESC
FS
GS
RS
US
SP
!
"
#
$
%
&
'
(
)
*
+
,
.
/
0
1
2
3
4
5
6
7
8
9
:
;
<
=
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
[
/
]
^
_
`
a
b
c
d
e
f
g
h
I
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~
DEL
0
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
?
No. 1-10 9/6/00
ASCII CODE
CONTROL CODES
NUL
SOH
STX
ETX
EOT
ENQ
ACK
BEL
BS
HT
LF
VT
FF
CR
SO
SI
SP
Null
Start of heading
Start of text
End of text
End of transmission
Enquiry
Acknowledge
Bell
Backspace
Horizontal tab
Line feed
Vertical tab
Form feed
Carriage return
Shift out
Shift in
Space
Introduction to
Microprocessors
Number Systems and
Conversions
DLE
DC1
DC2
DC3
DC4
NAK
SYN
ETC
CAN
EM
SUB
ESC
FS
GS
RS
US
DEL
Data link escape
Device control 1
Device control 2
Device control 3
Device control 4
Negative acknowledge
Synchronize
End transmitted block
Cancel
End of medium
Substitute
Escape
File separator
Group separator
Record separator
Unit separator
Delete or rubout
No. 1-11 9/6/00
EBCDIC
Part I
Least Significant
Digit
Introduction to
Microprocessors
Number Systems and
Conversions
Most Significant Hexadecimal Digit
1
2
0
0
Null
Data link escape
Digit select
1
Start of heading
Device control 1
Start of
significance
2
Start of text
Device control 2
Field separator
3
4
5
End of text
Punch off
Horizontal tab
Tape mark
Restore
New line
6
Lowercase
Backspace
7
Delete
Idle
RLF
Cancel
End of medium
8
9
A
Start of manual
message
B
Vertical tab
C
Form feed
D
Carriage return
E
Shift out
F
Shift in
4
5
Spac
&
e
6
7
/
Synchronization
character
Bypass
PN
Line feed
Record separator
End of
Uppercase
transmission block
End of
Escape
transmission
\
Cursor control
Set mode
Customer use 1
Interchange file
separator
Interchange group
separator
Interchange record
separator
Customer use 2
Interchange unit
separator
3
Enquiry
Customer use 3
cen
t
!
sig
n
.
$
Device control 4
<
*
% @
Negative
acknowledgment
(
)
_ '
+
;
> =
Acknowledge
Bell
Start of special
sequence
]
| :
, #
| or
? "
No.[ 1-12 or9/6/00
]
EBCDIC
PART II
Introduction to
Microprocessors
Number Systems and
Conversions
Least
Significant
Digit
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
Most Significant Hexadecimal Digit
8
a
b
c
d
e
f
g
h
i
9
j
k
l
m
n
o
p
q
r
A
s
t
u
v
w
x
y
z
B
C
{
A
B
C
D
E
F
G
H
I
D
}
J
K
L
M
N
O
P
Q
R
E
`
S
T
U
V
W
X
Y
Z
F
0
1
2
3
4
5
6
7
8
9
No. 1-13 9/6/00
UNICODE
Introduction to
Microprocessors
Number Systems and
Conversions
16 BIT CODE
First Page 0000H - 00FFH Same as ASCII
Has not been standardized the remaining
0FFFFH minus 00FFH available for all remaining
countries and languages!
No. 1-14 9/6/00
Number Systems
Introduction to
Microprocessors
Number Systems and
Conversions
Representation of Negative Numbers
Three major schemes:
sign and magnitude
ones complement
twos complement
nines complement
tens complement
Assumptions:
we'll assume a 4 bit machine word
16 different values can be represented
roughly half are positive, half are negative
No. 1-15 9/6/00
Number Systems
Sign and Magnitude Representation
-7
-6
-5
1111
1110
Introduction to
Microprocessors
Number Systems and
Conversions
+0
+1
0000
0001
1101
0010
+2
+
-4
1100
0011
+3
0 100 = + 4
-3
1011
0100
+4
1 100 = - 4
-2
1010
0101
1001
-1
+5
-
0110
1000
-0
0111
+6
+7
High order bit is sign: 0 = positive (or zero), 1 = negative
Three low order bits is the magnitude: 0 (000) thru 7 (111)
n-1
Number range for n bits = +/-2
-1
Representations for 0
Two +/No. 1-16 9/6/00
Number Systems
Introduction to
Microprocessors
Number Systems and
Conversions
Ones Complement
-0
-1
-2
1111
1110
+0
+1
0000
0001
1101
0010
+2
+
-3
1100
0011
+3
0 100 = + 4
-4
1011
0100
+4
1 011 = - 4
-5
1010
0101
1001
-6
+5
-
0110
1000
-7
0111
+6
+7
Subtraction implemented by addition & 1's complement
Still two representations of 0! This causes some problems
Some complexities in addition
No. 1-17 9/6/00
Number Representations
Introduction to
Microprocessors
Number Systems and
Conversions
Twos Complement
-1
-2
-3
like 1's comp
except shifted
one position
clockwise
1111
1110
+0
+1
0000
0001
1101
0010
+2
+
-4
1100
0011
+3
0 100 = + 4
-5
1011
0100
+4
1 100 = - 4
-6
1010
0101
1001
-7
+5
-
0110
1000
-8
0111
+6
+7
Only one representation for 0
One more negative number than positive number
No. 1-18 9/6/00
BINARY ARITHMETIC
Introduction to
Microprocessors
Number Systems and
Conversions
RULES FOR ADDITION
0+0=0
0+1=1
1+0=1
1 + 1 = 0 + carry 1 to next column
RULES FOR SUBTRACTION
0-0=0
0 - 1 = 1 and borrow from next column
1-0=1
1-1=0
Borrowing 1 from next column is
equivalent to subtracting 1 from that column
No. 1-19 9/6/00
Addition
Introduction to
Microprocessors
Number Systems and
Conversions
EXAMPLE
ADD 1010 to 1101
+
1010
1101
10111
SUBTRACT 1010 from 1101
-
1101
1010
0011
borrow 4 subtract 2
nothing in 4 position
No. 1-20 9/6/00
Number Representations
Introduction to
Microprocessors
Number Systems and
Conversions
Addition and Subtraction of Numbers
Sign and Magnitude
4
0100
When signs is same,
result sign bit is the
+3
same as the operands'
sign. Just add magnitudes 7
-4
1100
0011
+ (-3)
1011
0111
-7
1111
4
0100
-4
1100
-3
1011
+3
0011
1
0001
-1
1001
When signs differ,
operation is subtract,
sign of result depends
on sign of number with
the larger magnitude. This
is what we do in base 10.
No. 1-21 9/6/00
Number Systems
Introduction to
Microprocessors
Number Systems and
Conversions
Sign and Magnitude
Cumbersome addition/subtraction.
Must compare magnitudes to determine the
sign of result.
No. 1-22 9/6/00
Ones Complement
Introduction to
Microprocessors
Number Systems and
Conversions
The symbol N, with a bar over it, is used to represent the
complement. Also used to indicate inversion are /, ‘, or !
(CUPL and ABEL)
N is positive number, then N is its negative 1's complement.
N is the precision, as many 1’s as required. Binary can be
any precision, but BCD requires 4 bits.
Precision 4 bits
Therefore,
The general formula for finding
/N = (2n - 1) - N
2 4 = 10000
-1
= 00001
To find 1's complement of 7
1111
-7
=
0111
1000
= -7 in 1's comp.
No. 1-23 9/6/00
Ones Complement
ZERO
Applying the general formula
/N = (2n - 1) - N
Introduction to
Microprocessors
Number Systems and
Conversions
2 4 = 10000
-1
= 00001
To find 1's complement of 0
1111
-0
=
0000
1111
= -0 in 1's comp.
NOTE:
The complement of 0 is 1111, which means, there are
2 representations of 0.
0000 Positive 0
1111 Negative 0
No. 1-24 9/6/00
SHORTCUT
1’s Complement
Introduction to
Microprocessors
Number Systems and
Conversions
Shortcut method:
Replace all 0’s with 1’s, and all 1’s with 0’s
simply compute bit wise complement
7 in 1’s complement
0111 -> 1000
No. 1-25 9/6/00
Number Systems
Introduction to
Microprocessors
Number Systems and
Conversions
Addition and Subtraction of Numbers
Ones Complement Calculations
4
0100
-4
1011
+3
0011
+ (-3)
1100
7
0111
-7
10111
End around carry
1
1000
4
0100
-4
1011
-3
1100
+3
0011
1
10000
-1
1110
End around carry
1
0001
No. 1-26 9/6/00
Number Systems
Addition and Subtraction of Binary Numbers
Ones Complement Calculations
Introduction to
Microprocessors
Number Systems and
Conversions
Why does end-around carry work?
n
Its equivalent to subtracting 2 and adding 1
For (M > N)
M - N = M + / N = M + (2n - N -1) = (M - N) + 2n - 1
For M + N < 2n-1
-M + (-N) = M + N = (2n - M - 1) + (2n - N - 1)
= 2n + [2n - 1 - (M + N)] - 1
after end around carry the -1 is canceled if a carry, else not:
= 2n - 1 - (M + N)
this is the correct form for representing -(M + N) in 1's complement!
No. 1-27 9/6/00
Number Systems
Two’s Complement Numbers
Introduction to
Microprocessors
Number Systems and
Conversions
/N = 2n - N
4
Note: subtract number immediately.
Example: Twos complement of 7
2 = 10000
sub 7 =
0111
1001 = represents -7
Example: Twos complement of 0
Only 4bits can represent number.
The most significant 1 is dropped!
4
2 = 10000
sub -0 =
0000
0000 = 0
Shortcut method Number 1:
Twos complement =1’s complement + 1
0111 -> 1000 + 1 -> 1001 (representation of -7)
1001 -> 0110 + 1 -> 0111 (representation of 7)
No. 1-28 9/6/00
SHORTCUT
Introduction to
Microprocessors
Number Systems and
Conversions
Shortcut method Number 2:
Starting from the right, least significant bit, if 0 leave unchanged.
Continue from right to left, if 0, no change. When the first 1 is encountered,
we leave it unchanged, but complement each digit to the left.
710 = 01112 Apply method 10012 = -710 .
6810 = 011001002
yields 100111002 . The lead 0 is important so that
the number to be converted
is positive! In base 10, the - sign
does that for us. With only on and
off (0,1) we need this extra bit
of information to describe the
signed number.
-6810 = 10011100 yields 011001002 = + 6810
No. 1-29 9/6/00
Number Systems
Addition and Subtraction of Binary Numbers
Twos Complement Calculations
Introduction to
Microprocessors
Number Systems and
Conversions
4
0100
-4
1100
+3
0011
+ (-3)
1101
7
0111
-7
11001
4
0100
-4
1100
-3
1101
+3
0011
1
10001
-1
1111
Simpler addition scheme makes twos complement the most common
choice for integer number systems within digital systems
No. 1-30 9/6/00
Number Systems
Addition and Subtraction of Binary Numbers
Twos Complement Calculations
Introduction to
Microprocessors
Number Systems and
Conversions
Why can the carry-out be ignored?
-M + N when N > M:
n
n
M* + N = (2 - M) + N = 2 + (N - M)
Ignoring carry-out is just like subtracting 2
n
-M + -N where N + M < or = 2 n-1
n
n
-M + (-N) = M* + N* = (2 - M) + (2 - N)
n
n
= 2 - (M + N) + 2
After ignoring the carry, this is just the right twos compl.
representation for -(M + N)!
No. 1-31 9/6/00
Number Systems
Introduction to
Microprocessors
Number Systems and
Conversions
Overflow Conditions
Add two positive numbers to get a negative number
or two negative numbers to get a positive number
-1
-2
1111
0001
1101
-4
0010
1100
-5
0100
1010
0101
1001
-7
0110
1000
-8
0111
+7
+3=-8 (error)
4 bit representation
3 bits + sign in msb
range -8 to +7
-3
+2
0011
1011
-6
-2
+1
0000
1110
-3
-1
+0
+3
-4
1111
1110
1101
+2=7 (ok)
0010
1010
-6
0110
1000
-8
+2
0011
+3
0100
+4
0101
1001
-7
+1=6 (ok)
0001
1011
+4
+6
+1
0000
1100
-5
+5
+0
0111
+5
+6
+7
-7 - 2 = +7
5 0101
+3 0011
-8 1000
No. 1-32 9/6/00
OVERFLOW
Introduction to
Microprocessors
Number Systems and
Conversions
If carry-in (penultimate) is added
to sign bit and there is a carry-out
then no overflow.
if carry-in differs from
carry-out then overflow
This is true for both 1’s and 2’s complement addition.
No. 1-33 9/6/00
Number Systems
Overflow Conditions
Example is using 2’s Complement
0 1 1 1 carry
5
0101
3
0011
-8
1000
Overflow
Introduction to
Microprocessors
Number Systems and
Conversions
-7
1 0 0 0 carry
1001
-2
1110
7
10111
Overflow
Note: the carry and penultimate carry are not the same!
This can be very easily implemented in hardware. XOR
5
0 0 0 0 carry
0101
-3
1 1 1 1 carry
1101
2
0010
-5
1011
7
0111
-8
11000
No overflow
No overflow
Overflow when carry in to sign does not equal carry out
No. 1-34 9/6/00
BCD Addition
Introduction to
Microprocessors
Number Systems and
Conversions
BCD Number Representation
Decimal digits 0 thru 9 represented as 0000 thru 1001 in binary
Addition:
5 = 0101
3 = 0011
1000 = 8
5 = 0101
8 = 1000
Problem
when digit
sum exceeds 9
1101 = 13!
Solution: add 6 (0110) if sum exceeds 9.
5 = 0101
9 = 1001
8 = 1000
7 = 0111
1101
6 = 0110
1 0011 = 1 3 in BCD
1 0000 = 16 in binary
6 = 0110
1 0110 = 1 6 in BCD
No. 1-35 9/6/00
BCD Subtractin
Introduction to
Microprocessors
Number Systems and
Conversions
Must use 10’s complement
To find 10’s complement, first generate 9’s complement by subtracting
The number from 9.
If n = 9,
If n = 8,
If n = 7,
If n = 6,
If n = 5,
If n = 4,
If n = 3,
If n = 2,
If n = 1,
If n = 0,
9-9 =0
9-8 =1
9-7 =2
9-6 =3
9-5 =4
9-4 =5
9-3 =6
9-2 =7
9-1 =8
9-0 =9
9’s complement of 9 is 0 or 0000
9’s complement of 8 is 1 or 0001
9’s complement of 7 is 2 or 0010
9’s complement of 6 is 3 or 0011
9’s complement of 5 is 4 or 0100
9’s complement of 4 is 5 or 0101
9’s complement of 3 is 6 or 0110
9’s complement of 2 is 7 or 0111
9’s complement of 1 is 8 or 1000
9’s complement of 0 is 9 or 1001
Add 1 to 9’s complement to find 10’s complement.
No. 1-36 9/6/00
Example of BCD Subtract
Introduction to
Microprocessors
Number Systems and
Conversions
To subtract 2 from 5, find 10’s complement of 2 which is 10002 4 Bit
Representation.
5
-2
5
8
3
13
0101
1000
1
1101 The 1 carry, is normal form
and indicates answer is 3.
In binary, 1001 is exceeded!
Must add 6 to correct.
Known as BCD adjust.
0110
0011 The 1 carry is normal form
answer is 3 base 10.
No. 1-37 9/6/00
Addition Examples
4 BITS signed and
unsigned
Introduction to
Microprocessors
Number Systems and
Conversions
Decimal
Binary
Unsigned
1’s
Complement
2’s
Complement
9’s
Complement
10’s
Complement
9’s
Complement
Binary
Coded
Decimal
10’s
Complement
Binary
Coded
Decimal
No Sign
No Sign
4 Bit
Signed
No
Overflow
4 Bit
Signed
No
Overflow
Base10
Signed
No
Overflow
Base10
Signed
No
Overflow
Base2
Signed No
Overflow
4 Bit BCD
Base2
Signed No
Overflow
4 Bit BCD
0001
0011
0001
0011
1
+3
0001
0011
0
01
0001
0011
0
1
4
0
12
111
1100
0
0100
0100
4 Bit
No Sign
No
Overflow
5
0101
+7
0111
011
0001
0011
4 Bit
Signed
Overflow
0
111
4 Bit
Signed
Overflow
1100
0101
0111
0
1
+3
011
0100
0101
0111
1
+3
0
4
Base10
Signed
Overflow
05
+07
4
Base10
Signed
Overflow
5
+7
111
1100
12
0
011
0100
Base2 9’s Base2 10’s
Signed
Signed
Overflow
Overflow
4 Bit BCD
4 Bit BCD
0101
0101
0111
0111
0
12
011
0100
111
1100
0
111
1100
No. 1-38 9/6/00
Addition Examples
4 BITS signed and
unsigned
Decimal
Binary
Unsigned
1’s
Complement
No Sign
No Sign
4 Bit
Signed
No
Overflow
7
-2
1 1 1
0111
1110
1
1101
0
1101
(-2) 0010
1 1 1
0101
4 Bit
Signed
No
Overflow
0101
1000
0 0 0 0
-2
4 Bit
Signed
No
Overflow
0100
1
0101
4 Bit
Signed
No
Overflow
5
-7
2’s
Complement
0111
1101
1
5
Introduction to
Microprocessors
Number Systems and
Conversions
0101
1001
0
9’s
Complement
10’s
Complement
9’s
Complement
Binary
Coded
Decimal
10’s
Complement
Binary
Coded
Decimal
Base10
Signed
No
Overflow
Base10
Signed
No
Overflow
Base2
Signed No
Overflow
4 Bit BCD
Base2
Signed No
Overflow
4 Bit BCD
0111
1101
0111
1110
7
97
1 1
7
98
1 1
04
1
05
Base10
Signed
No
Overflow
05
92
05
Base10
Signed
No
Overflow
5
93
0 0 1
1
1 1 1
97
98
0001
1
(-2) 0010
-2
01
1
(-2) 02
1 1 1
0101
Base2 9’s
Signed
No
Overflow
4 Bit BCD
0101
1000
Base2 10’s
Signed
No
Overflow
4 Bit BCD
0101
1001
0 0 0 0
1110
1
0100
1
0101
1101
0
1101
(-2) 0010
0
0 0 1
1110
0001
1
(-2) 0010
No. 1-39 9/6/00
Excess 3 Code
Introduction to
Microprocessors
Number Systems and
Conversions
Excess-3 code is another important BCD Code.
To encode a decimal number, add 3 to each digit
before converting to binary.
EXAMPLE (Note: 2 digits represented by 2 4 bit
numbers)
12 to excess-3 = 1+3=4
2+3=5
4
5
0100 0101
29
to excess-3 = 2+3=5 9+3=12
5
12
0101 1100
No. 1-40 9/6/00
EXAMPLES OF EXCESS ADDITION
Introduction to
Microprocessors
Number Systems and
Conversions
CASE 1
In excess-3 addition, whenever we add two numbers
whose sum is 9 or less, an excess-6 number is
formed. To return to excess-3 we must subtract 3.
EXAMPLE
2 +5 = 7
0101 2
1000 5
1101 excess-6
- 0011
1010 excess-3 equivalent of 7
No. 1-41 9/6/00
EXAMPLES OF EXCESS ADDITION
CASE 2
Introduction to
Microprocessors
Number Systems and
Conversions
In excess-3 addition, whenever we add two numbers
whose sum is greater than 9, there will be a carry
from one group to the next. When this happens, the
group that produced the carry will revert to 8421
(BCD). To return to excess-3 we must subtract 3
from that group.
EXAMPLE
0
1
carry not carried to 10’s because of sum
29 0101 1100 excess-3 for 29
+ 39 0110 1100 excess-3 for 39
68 1100 1000 first result
- 0011 + 0011 subtract less than 9, add 3
1001
1011 excess-3 for 68
No. 1-42 9/6/00