Sei sulla pagina 1di 25

Codes

Outline
Binary Coded Decimal (BCD)
Gray Code
Binary-to-Gray Conversion
Gray-to-Binary Conversion

Other Decimal Codes


Self-Complementing Codes
Alphanumeric Codes
Error Detection Codes

Outline
Binary Coded Decimal (BCD)
Gray Code
Binary-to-Gray Conversion
Gray-to-Binary Conversion

Other Decimal Codes


Self-Complementing Codes
Alphanumeric Codes
Error Detection Codes

Binary Coded Decimal


(BCD)
Decimal numbers are more natural to humans. Binary numbers
are natural to computers. Quite expensive to convert between
the two.

If little calculation is involved, we can use some coding schemes


for decimal numbers.

One such scheme is BCD, also known as the 8421 code.


Represent each decimal digit as a 4-bit binary code.

Binary Coded Decimal


(BCD)
Decimal digit
0
1
2
3
4
BCD
Decimal digit
BCD

0000
5
0101

0001
6
0110

0010
7
0111

0011
8
1000

0100
9
1001

Some codes are unused, eg: (1010)BCD, (1011) BCD, , (1111)


BCD

. These codes are considered as errors.

Easy to convert, but arithmetic operations are more


complicated.

Suitable for interfaces such as keypad inputs and digital


readouts.

Binary Coded Decimal


(BCD)
Decimal digit
BCD
Decimal digit
BCD

0
0000
5
0101

1
0001
6
0110

2
0010
7
0111

3
0011
8
1000

Examples:
(234)10 = (0010 0011 0100)BCD
(7093)10 = (0111 0000 1001 0011)BCD
(1000 0110)BCD = (86)10
(1001 0100 0111 0010)BCD = (9472)10
Notes: BCD is not equivalent to binary.
Example: (234)10 = (11101010)2

4
0100
9
1001

Outline
Binary Coded Decimal (BCD)
Gray Code
Binary-to-Gray Conversion
Gray-to-Binary Conversion

Other Decimal Codes


Self-Complementing Codes
Alphanumeric Codes
Error Detection Codes

Gray Code
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

Q. How to generate 5-bit standard Gray code?


Q. How to generate n-bit standard Gray code?

Binary
1000
1001
1010
1011
1100
1101
1110
1111

Gray code
1100
1101
1111
1110
1010
1011
1001
1000

Gray Code
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.

0
0

Gray Code
0

0
1

1
1

sensors

1
1

1
1

0
0

0
0

0
0

1
1
0
0

0
0

1
1

1
1

mis-aligned
sensors

Binary coded: 111 110 000

mis-aligned
sensors

Gray coded: 111 101

Binary-to-Gray Code
Conversion
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.

Binary

1
1

Gray
1
1

0
1

1
1

Binary
Gray

(10110)2 = (11101)Gray

Binary

Gray
1
1

0
1

1
1

1
0

0
1

Binary

Gray

Binary
Gray

Gray-to-Binary Conversion
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

Gray

1
+

Binary
1

1
+

Gray

Gray

(11011)Gray = (10010)2

0
+

Binary

1
+

Binary

Gray

Binary

Gray
Binary

Outline
Binary Coded Decimal (BCD)
Gray Code
Binary-to-Gray Conversion
Gray-to-Binary Conversion

Other Decimal Codes


Self-Complementing Codes
Alphanumeric Codes
Error Detection Codes

Other Decimal Codes


Decimal Digit
0
1
2
3
4
5
6
7
8
9

BCD
8421
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001

Excess-3

84-2-1

2*421

0011
0100
0101
0110
0111
1000
1001
1010
1011
1100

0000
0111
0110
0101
0100
1011
1010
1001
1000
1111

0000
0001
0010
0011
0100
1011
1100
1101
1110
1111

Biquinary
5043210
0100001
0100010
0100100
0101000
0110000
1000001
1000010
1000100
1001000
1010000

Self-complementing codes: excess-3, 84-2-1, 2*421 codes.


Error-detecting code: biquinary code (bi=two, quinary=five).

Outline
Binary Coded Decimal (BCD)
Gray Code
Binary-to-Gray Conversion
Gray-to-Binary Conversion

Other Decimal Codes


Self-Complementing Codes
Alphanumeric Codes
Error Detection Codes

Self-Complementing Codes
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

Outline
Binary Coded Decimal (BCD)
Gray Code
Binary-to-Gray Conversion
Gray-to-Binary Conversion

Other Decimal Codes


Self-Complementing Codes
Alphanumeric Codes
Error Detection Codes

Alphanumeric Codes
Apart from numbers, computers also handle textual data.
Character set frequently used includes:
alphabets:
digits:
special symbols:
non-printable:

A .. Z, and a .. z
0 .. 9
$, ., ,, @, *,
SOH, NULL, BELL,

Usually, these characters can be represented using 7 or 8 bits.

Alphanumeric Codes
Two widely used standards:
ASCII (American Standard Code for Information Interchange)
EBCDIC (Extended BCD Interchange Code)

ASCII: 7-bit, plus a parity bit


for error detection (odd/even
parity).

EBCDIC: 8-bit code.

Character
0
1
...
9
:
A
B
...
Z
[
\

ASCII Code
0110000
0110001
...
0111001
0111010
1000001
1000010
...
1011010
1011011
1011100

Alphanumeric Codes
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

Outline
Binary Coded Decimal (BCD)
Gray Code
Binary-to-Gray Conversion
Gray-to-Binary Conversion

Other Decimal Codes


Self-Complementing Codes
Alphanumeric Codes
Error Detection Codes

Error Detection Codes


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 error-detection. For


single-error detection, one additional bit is needed.

Error Detection Codes


Parity bit.
Even parity: additional bit supplied to make total number of

1s even.
Odd parity: additional bit supplied to make total number of 1s
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


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


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 (not covered).

Potrebbero piacerti anche