Sunteți pe pagina 1din 2

Gray Code

=
=
=
=

AKA Reflected Binary Code (RBC) / Unit distance code / Minimum error code / Cyclic code
unweighted code
cod unde 2 valori succesive difera intre ele la 1 singur bit.
numerele binare sunt convertite la Gray pentru a reduce operatiile de switch (comutare)
In ziua de azi e folosit in corectarea erorilor in comunicatiile digitale cum ar fi TV pe cablu.

b3
Decimal
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1

b2
Binary
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1

b1

b0

g3

0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1

0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1

0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0

g2

g1
Gray code
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0

g0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0

Conversie Binary ==> Gray Code


1. Metoda 1:
1. Se trece MSB (most significant bit) asa cum
e
2. Se aduna bit-ul current la urmatorul si se
trece suma
ignorandu-se ce iese din baza (adica e peste 1)
3. Se repeta procesul
Ex.: (1011)2
MS
B
1
0
1
1
= Binar

1
1

0
1

1
0

= Raspunsul in Gray
code

Conversie Gray code ==> Binary

2. Metoda 2: se aplica functia XOR intre biti


pentru a obtine cod Gray.
b3b2b1b0 = binar
g3g2g1g0 = gray code
g3 = b 3
g2 = b2 XOR b3
g1 = b1 XOR b2
g0 = b0 XOR b0

1. Metoda 1:
1. Trecem MSB asa cum e
2. Adunam bit-ul curent la urmatorul si trecem
suma ignorand ce iese peste baza
3. Se repeta procesul
1
1
1
0
= Gray code

= Raspunsul in Binar

2. Metoda 2: se aplica functia XOR intre biti


pentru a obtine cod Gray.
b3b2b1b0 = binar
g3g2g1g0 = gray code
b3 = g 3
b2 = b3 XOR g2
b1 = b2 XOR g1
b0 = b1 XOR g0