I Codes - MCA Galgotias University

advertisement
Digital Design
MODULE –I
CODES: WEIGHTED AND NON-WEIGHTED CODES
Amit Kumar
Assistant Professor
SCSE,
Galgotias University, Greater Noida
Outline
• Codes
• Types of Codes
• Weighted
• Non-Weighted
Introduction
• In the coding, when numbers, letters or words are
represented by a specific group of symbols, it is said
that the number, letter or word is being encoded.
The group of symbols is called as a code.
•The digital data is represented, stored and
transmitted as group of binary bits. This group is
also called as binary code.
•The binary code is represented by the number as
well as alphanumeric letter.
Advantages of Binary Code
Following is the list of advantages that binary code
offers.
•Binary codes are suitable for the computer
applications.
•Binary codes are suitable for the digital
communications.
•Binary codes make the analysis and designing of
digital circuits if we use the binary codes.
•Since only 0 & 1 are being used, implementation
becomes easy.
Classification of Binary Code
The codes are broadly categorized into following
four categories:
• Weighted Codes
• Non-Weighted Codes
• Binary Coded Decimal Code
• Alphanumeric Codes
• Error Detecting Codes
• Error Correcting Codes
Weighted Codes
Weighted binary codes are those binary codes which
obey the positional weight principle. Each position
of the number represents a specific weight. Several
systems of the codes are used to express the decimal
digits 0 through 9. In these codes each decimal digit
is represented by a group of four bits.
Non-Weighted Codes
In this type of binary codes, the positional weights
are not assigned. The examples of non-weighted
codes are Excess-3 code and Gray code.
Binary Coded Decimal (BCD) Systems
 The BCD system is employed by computer systems
to encode the decimal number into its equivalent
binary number.
 This is generally accomplished by encoding each
digit of the decimal number into its equivalent
binary sequence.
 The main advantage of BCD system is that it is a
fast and efficient system to convert the decimal
numbers into binary numbers as compared to the
pure binary system.
Binary Coded Decimal (BCD) Systems
 The 4-bit BCD system is usually employed by the
computer systems to represent and process
numerical data only. In the 4-bit BCD system, each
digit of the decimal number is encoded to its
corresponding 4-bit binary sequence. The two
most popular 4-bit BCD systems are:
• Weighted 4-bit BCD code
• Excess-3 (XS-3) BCD code
Weighted 4-Bit BCD Code (8421)
 The weighted 4-bit BCD code is more commonly known as
8421 weighted code.
 It is called weighted code because it encodes the decimal
system into binary system by using the concept of
positional weighting into consideration.
 In this code, each decimal digit is encoded into its 4-bit
binary number in which the bits from left to right have the
weights 8, 4, 2, and 1, respectively.
Weighted 4-Bit BCD Code
Decimal digits
Weighted 4-bit BCD code
0
0000
 Apart from
1
0001
2
0010
3
0011
4
0100
5
0101
6
0110
7
0111
8421, some
other
weighted
BCD codes
are 4221,
2421 and
5211.
8
1000
9
1001
Weighted 4-Bit BCD Code
Represent the decimal number 5327 in 8421 BCD code.
The corresponding 4-bit 8421 BCD representation of decimal digit 5 is 0101
The corresponding 4-bit 8421 BCD representation of decimal digit 3 is 0011
The corresponding 4-bit 8421 BCD representation of decimal digit 2 is
0010
The corresponding 4-bit 8421 BCD representation of decimal digit 7 is 0111
Therefore, the 8421 BCD representation of decimal number 5327 is
0101001100100111.
Advantages & Disadvantage of Binary Code
Advantages of BCD Codes
• It is very similar to decimal system.
• We need to remember binary equivalent of decimal
numbers 0 to 9 only.
Disadvantages of BCD Codes
•The addition and subtraction of BCD have different
rules.
• The BCD arithmetic is little more complicated.
• BCD needs more number of bits than binary to
represent the decimal number. So BCD is less
efficient than binary.
Excess-3 Code
• The Excess-3 (XS-3) BCD code does not use the principle of
positional weights into consideration while converting the
decimal numbers to 4-bit BCD system. Therefore, we can say
that this code is a non-weighted BCD code.
•The function of XS-3 code is to transform the decimal
numbers into their corresponding 4-bit BCD code.
•In this code, the decimal number is transformed to the 4-bit
BCD code by first adding 3 to all the digits of the number and
then converting the excess digits, so obtained, into their
corresponding 8421 BCD code. Therefore, we can say that the
XS-3 code is strongly related with 8421 BCD code in its
functioning.
Excess-3 Code
The excess-3 codes are obtained as follows
Example
Excess-3 Code
Convert the decimal number 85 to XS-3 BCD code.
Add 3 to each digit of the given decimal number as:
8+3=11
5+3=8
The corresponding 4-bit 8421 BCD representation of the decimal digit
11 is 1011.
The corresponding 4-bit 8421 BCD representation of the decimal digit
8 is 1000.
Therefore, the XS-3 BCD representation of the decimal number 85 is
1011 1000.
The Gray Code
18
 Unweighted (not an arithmetic code).
 Only a single bit change from one code number to the

next.
Good for error detection.
Decimal
0
1
2
3
4
5
6
7
Binary
0000
0001
0010
0011
0100
0101
0110
0111
Gray Code
0000
0001
0011
0010
0110
0111
0101
0100
Decimal
8
9
10
11
12
13
14
15
Binary
1000
1001
1010
1011
1100
1101
1110
1111
Gray code
1100
1101
1111
1110
1010
1011
1001
1000
The Gray Code
19
0000
0001
0011
0001
0010
0000
0010
0110
0111
0011
0101
0001
0100
0000
1100
0100
0101
1101
0111
1111
0110
1110
0010
1010
0011
1011
0001
1001
0000
1000
Generating 4-bit standard Gray code.
Binary-to-Gray Code Conversion
20
 Retain most significant bit.
 From left to right, add each adjacent pair of binary code

bits to get the next Gray code bit, discarding carries.
Example: Convert binary number 10110 to Gray code.
1
0
1
1
0

1
1
Binary
1
Gray
1
1
0
1
1
1
+
1

0
+
0
Binary
Gray
(10110)2 = (11101)Gray
0
1
1
0
1
Binary

1
Gray
1
1
0
1
1
1
1
0
1
+
0
1
0
Binary

1
Gray
+
1

1
1
0
Binary
Gray
Binary-to-Gray Code Conversion
21
Gray-to-Binary Conversion
22
 Retain most significant bit.
 From left to right, add each binary code bit generated to

the Gray code bit in the next position, discarding
carries.
Example: Convert Gray code 11011 to binary.
1
1
0
1
1

1
1
Gray
1
+
1
Binary
1
1
0
1
+
1
0
0

1
1
Gray
0
1
1

0
Gray
1
(11011)Gray = (10010)2
0
+
Binary
1
1
0
1
1
+
Binary
1
1
0
0
1
0
1
Gray

0
Binary

0
1
1
Gray
Binary
Gray-to-Binary Conversion
23
Application of Gray code
24
 Gray code is popularly used in the shaft
position encoders.
 A shaft position encoder produces a code
word which represents the angular
position of the shaft.
Self-Complementing Codes
25
 Examples: excess-3, 84-2-1, 2*421 codes.
 The codes that represent the pair of complementary
digits are complementary of each other.
Excess-3 code
0:
1:
2:
3:
4:
5:
6:
7:
8:
9:
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
241: 0101 0111 0100
758: 1010 1000 1011
Alphanumeric Codes
26
 Apart from numbers, computers also handle textual
data.
 Character set frequently used includes:
alphabets: ‘A’ .. ‘Z’, and ‘a’ .. ‘z’
digits:
‘0’ .. ‘9’
special symbols: ‘$’, ‘.’, ‘,’, ‘@’, ‘*’, …
non-printable:
SOH, NULL, BELL, …
 Usually, these characters can be represented using 7 or
8 bits.
Alphanumeric Codes
27
 ASCII: 7-bit, plus a parity bit for error detection
(odd/even parity).
Character
0
1
...
9
:
A
B
...
Z
[
\
ASCII Code
0110000
0110001
...
0111001
0111010
1000001
1000010
...
1011010
1011011
1011100
Alphanumeric Codes
28
 ASCII table:
LSBs
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
000
NUL
SOH
STX
ETX
EOT
ENQ
ACK
BEL
BS
HT
LF
VT
FF
CR
O
SI
001
DLE
DC1
DC2
DC3
DC4
NAK
SYN
ETB
CAN
EM
SUB
ESC
FS
GS
RS
US
010
SP
!
“
#
$
%
&
‘
(
)
*
+
,
.
/
MSBs
011 100
0
@
1
A
2
B
3
C
4
D
5
E
6
F
7
G
8
H
9
I
:
J
;
K
<
L
=
M
>
N
?
O
101
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_
110
`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
111
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~
DEL
Error Detection Codes
29
 Errors can occur data transmission. They should be
detected, so that re-transmission can be requested.
 With binary numbers, usually single-bit errors occur.
Example: 0010 erroneously transmitted as 0011, or 0000, or 0110,
or 1010.
 Biquinary code uses 3 additional bits for errordetection. For single-error detection, one additional
bit is needed.
Error Detection Codes
30
 Parity bit.
 Even parity: additional bit supplied to make total number of ‘1’s
even.
 Odd parity: additional bit supplied to make total number of ‘1’s
odd.
 Example: Odd parity.
Character
0
1
...
9
:
A
B
...
Z
[
\
ASCII Code
0110000 1
0110001 0
...
0111001 1
0111010 1
1000001 1
1000010 1
...
1011010 1
1011011 0
1011100 1
Parity
bits
Error Detection Codes
31
 Parity bit can detect odd number of errors but not even
number of errors.
Example: For odd parity numbers,
10011  10001 (detected)
10011  10101 (non detected)
 Parity bits can also be
applied to a block of data:
0110 1
0001 0
1011 0
1111 1
1001 1
0101 0
Column-wise parity
Row-wise parity
Error Detection Codes
32
 Sometimes, it is not enough to do error detection. We
may want to do error correction.
 Error correction is expensive. In practice, we may use
only single-bit error correction.
 Popular technique: Hamming Code.
Download