ABCelectronique : portail d'information dans le domaine de l'électronique
Home » Diverses rubriques » Logique et circuits combinatoire
  Logique combinatoire
Circuits combinatoire

I.1) Représentation numérique et représentation analogique

Dans le système analogique, une quantité mathématique est exprimée par une grandeur qui lui est directement proportionnelle. Par exemple, le tachymètre d'une automobile indique la valeur de la vitesse par la rotation d'une aiguille d'un certain angle. Lorsque la vitesse "entrée" varie, la position de l'aiguille "sortie" varie également, indiquant la nouvelle vitesse. L'entrée et la sortie varient constamment. Ainsi, le système analogique est en fait une  "représentation constamment variable".

Dans le système numérique par contre, les quantités sont exprimées par des nombres fractionnés ou par des symboles plutôt que par des valeurs proportionnelles. Par exemple, une montre à affichage numérique indique les heures, minutes, secondes par période d’une seconde. Il n'y pas de variation continue entre les secondes une et deux, alors qu'il y a une infinité de divisions entre un et deux. Cette montre indique alors, soit "1" soit "2" et rien entre ces deux chiffres. Le principe ne change pas pour une montre numérique avec un chronomètre mesurant au centième de seconde, car il y a également une infinité de divisions entre 0.001 et 0.002. Comme il est impossible d'utiliser une infinité de chiffres pour exprimer une valeur précise, on utilise souvent un nombre approché. Dans ce système, les valeurs "approchées" et les sorties apparaissent sur des segments prédéterminés mais on ne peut pas voir les variations intermédiaires (système sans variation continue). 

I.2) Systèmes de numération

On utilise généralement les systèmes de numération suivants:

- Le système décimal utilise les chiffres 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 " base 10" pour représenter tous les nombres;

- le système binaire utilise les chiffres 0,1 "base 2" pour représenter tous les nombres;

- le système octal avec les chiffres 0, 1, 2, 3, 4, 5, 6, 7 "base 8";

-          le système hexadécimal ayant les chiffres 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F "base 16".

I.2.1 ) La Représentation Des Nombres

Afin d'éviter toute confusion entre deux systèmes de numération utilisant les mêmes chiffres, on s'attachera à les représenter :

(nombre)Base

- Le système décimal

Quand on écrit par exemple 1997 et 190,7; cela signifie :

(1997)10 = (1.103 + 9.102 + 9.101 + 7.100 = 1000 + 900 + 90 + 7)10

(190,75)10 = (1.102 + 9.101 + 0.100 + 7.10-1 + 5.10-2)10 = (100 + 90 + 7 + 0.7 + 0.05)10

- le système binaire

 (11101)2 = (1.24 + 1.23 + 1.22 + 0.21 + 1.20 )2

(111,011)2 = (1.22 + 1.21 + 1.20 + 0.2-1 + 1.2-2  + 1.2-3)2

- le système octal

(567)8 = (5.82 + 6.81 + 7.80)8

(476,510)8 = (4.82 + 7.81 + 6.80 + 5.8-1  + 1.8-2  + 0.8-3 )8

- le système hexadécimal

(5BF)16 = (5.162 + B.161 + F.160)16

(ACD,EF0)16 = (A.162 + C.161 + D.160 + E.16-1  + F.16-2  + 0.16-3 )16

D'une manière générale, on peut donc exprimer un nombre (N) dans le système de numération de base B:

I.2.2) Conversion d'un Système de numération en un autre

a) Base B vers base 10

Il suffit d'additionner les résultats des différentes multiplications précédentes. En remplaçant pour le système héxadécimal : (B)16 par (11)10 et (F)16 par (15)10 :

B = 2; (11101)2 = (1.24 + 1.23 + 1.22 + 0.21 + 1.20 )2 = (29)10

B = 8; (567)8 = (5.82 + 6.81 + 7.80)8 = (375)10

B = 16; (5BF)16 = (5.162 + B.161 + F.160)16 = (5.162 + 11.161 + 15.160)10 = (1471)10

b) Base 10 vers base B

La méthode de la soustraction successive

Cette méthode consiste à soustraire successivement la plus grande puissance de B; par exemple :

B = 2  :

(165)10 = ( 1.27 )2 + (37)10                  ;avec (27)2 = (128)10

 (37)10  = ( 1.25)2 + (5)10                (25)2 = (32)10

 

 (5)10   = ( 1.22)2 + (1)10                 (22)2 = (4)10

 (1)10   = ( 1.20)2                            (20)2 = (1)10

                       

      On obtient donc :

(165)10 = (10100101)2

B = 16 :

    

 (165)10 = ( A.161 )16 + (5)10              ;avec (A)16 = (10)10

 (5)10   = ( 5.160)16                            (160)16 = (1)10

 

      On obtient donc :

(165)10 = (A5)16

B = 8 :

 (165)10 = ( 2.82 )8 + (37)10                ;avec (27)2 = (128)10

 (37)10  = ( 4.81)8 + (3)10                            (25)2 = (32)10

 

(5)10   = ( 5.80)2                                           (22)2 = (4)10

On remarque que les puissances de 2 non utilisées sont remplacées par des zéros

      La méthode de la division par B

Cette méthode consiste à diviser le nombre par B autant de fois que cela est nécessaire pour obtenir : un quotient nul ou la précision recherchée. On écrit les restes dans l'ordre inverse où ils ont été obtenus.

Remarque importante

Les deux méthodes précédentes conviennent uniquement pour la conversion de la partie entière d'un nombre décimal. Quand il y a une partie fractionnaire, il faut la multiplier par B autant de fois que cela est nécessaire (selon la précision recherchée).

I.2.3) Base 2n  vers base 2

A l'aide de n éléments binaires (ou bits), on convertit chaque chiffre en base 2 et on juxtapose les résultats

n = 3 : conversion base 8 (octal) vers base 2 (binaire) :

      

       (756)8 =          7 5          6  = (111 101 110)2

                              111      101 110

n = 4 :  conversion base 16 (hexadécimal) vers base 2 (binaire) :

      

       (FA56)16 =      F A         5          6  = (1111 1010 0101 0110)2

                            1111 1010    0101   0110

I.2.4) Base 2 vers base 2n

Comme précédemment, dans cette conversion, on découpe le nombre binaire en tranches de n bits, que l'on convertit individuellement.

1.2.5) Base I vers J

Si I et J sont tous les deux des puissances de 2 , on utilise la base 2 comme base  relais

Si I et J ne sont pas tous les deux des puissances de 2, on utilise la base 10 comme base relais.    

1.2.6) Résumé

Décimal

Binaire

Hexadécimal

Octal

0

0 0 0 0

0

0

1

0 0 0 1

1

1

2

0 0 1 0

2

2

3

0 0 1 1

3

3

4

0 1 0 0

4

4

5

0 1 0 1

5

5

6

0 1 1 0

6

6

7

0 1 1 1

7

7

8

1 0 0 0

8

10

9

1 0 0 1

9

11

10

1 0 1 0

A

12

11

1 0 1 1

B

13

12

1 1 0 0

C

14

13

1 1 0 1

D

15

14

1 1 1 0

E

16

15

1 1 1 1

F

17

 

I.3) Arithmétique binaire

Les règles de calcul s'appliquent pratiquement toujours quel que soit le système de numération utilisé, néanmoins quand un calculateur effectue des opérations arithmétiques, il faut tenir compte des contraintes suivantes :

            Le format des mots ;

            on ne traite, généralement, que deux nombres à la fois ;

            La retenue.

I.3.1) les quatre opérations

addition

retenue

 

soustraction

retenue

 

multiplication

 

division

reste

0 + 0 = 0

0

 

0 - 0 = 0

0

 

0 ´ 0 = 0

 

0 : 0  **

 

0 + 1 = 1

0

 

0 - 1 = 1

1

 

0 ´ 1 = 0

 

0 : 1 = 0

1

1 + 0 = 1

0

 

1 - 0 = 1

0

 

1 ´ 0 = 0

 

1 : 0 **

 

1 + 1 = 0

1

 

1 - 1 = 0

0

 

1 ´ 1 = 1

 

1 : 1 = 1

0

  

 ** opération impossible

I.3.2) Les nombres négatifs

 

      a) Représentation avec la valeur absolue et le signe

     

      Un élément binaire (bit) est réservé au signe ; par convention, cet élément binaire vaut :

             0  si le nombre est positif ;

             1  si le nombre est négatif.

      Exemples:

+ (35)10 = (100011)2

- (35)10 = (100011)2

      b) Représentation avec le complément restreint (complément à 1 )

      On obtient le complément restreint CR(X) d'un nombre binaire X, en remplaçant ses 0 par des 1 et ses 1 par des zéros.

      On peut donc écrire :

;  avec n = nombre de bits de X ;

                                  

      Exemple: n = 4 bits

      c) Représentation par le complément vrai (complément à 2 )

On obtient le complément vrai CV(X) d'un nombre X, en prenant le complément restreint de ce nombre et en ajoutant 1 au bit de son rang de poids le plus faible : 

Cette représentation est utilisée pour transformer la soustraction en addition car :

Pour représenter un nombre négatif par son complément vrai, il est impératif de fixer le nombre de bits.

I.3.3) Problèmes liés à la longueur des nombres

Les circuits traitant les nombres de n bits peuvent manipuler, sans erreur de signe, tous les nombres compris entre    -2n-1 et  + 2n-1-1 à condition que les résultats ne sortent pas de cet intervalle.

Pour n = 8 ; on peut exprimer les nombres allant de  +127 à -128

      a) Addition de deux nombres positifs

      En additionnant deux nombres positifs (bits de signe égaux à 0), on peut obtenir un résultat négatif, si ce dernier sort de l'intervalle autorisé.

      Exemple sur 4 bits (intervalle : +7, -8) :

 

                                                 

      Nota : On parle de dépassement de capacité, lorsqu'une retenue arithmétique à l'intérieur d'un nombre modifie son bit de signe.

 

      b) Addition de deux nombres négatifs

      En additionnant deux nombres négatifs représentés par leurs compléments vrais, on peut obtenir un résultat dont le bit de signe est 0 bien que le résultat soit négatif. Dans ce cas la retenue est toujours présente.

      Exemples: Effectuez l'opération, (-9)10+(-4)10, pour n =4.

      Il faut d'abord effectuer la conversion décimale/binaire des deux nombres ; (9)10 = 23+20 ;     (4)10 =22.

      On peut donc facilement écrire :

                            (9)10 = (1001)2

          (4)10=(0100)2

     

et en suite représenter les deux nombres par leurs compléments vrais :

 

     

 

      et finalement :

 

 

 


                 retenue à ne pas prendre en considération                CV(13) =-13

C) Addition d'un nombre positif "A" et un nombre négatif " B"

Cela revient à effectuer la soustraction (A - B)

      1° cas :

 Il  y a  une retenue et il faut la négliger

      2° cas :

pas de retenue

I.4) Les codes binaires

On appelle code, un groupe de symboles permettant de représenter des nombres, des lettres ou des mots. Autrement dit un code "adapte" le langage humain au langage de la machine et inversement. L'un des codes les plus connu est le code Morse, dans lequel on utilise une série de points et de traits pour représenter les lettres de l'alphabet.

I.4.1) Les codes pondérés

Un code pondéré est un code dans lequel, chaque position de chiffres a une valeur intrinsèque (poids) ; par exemple 1, 10, 100, 1000 dans le système de numération décimal ou encore 1, 2, 4, 8 dans le système de numération binaire.

a) Le code binaire naturel et ses dérivés (octal et hexadécimal)

Ce sont ceux étudiés précédemment (cf : I.2.1).

b) Le code décimal codé binaire 8-4-2-1 (DCB ou BCD)

C'est une sorte de compromis entre le système de numération décimal et le code binaire naturel (CBN). Il permet de coder les dix chiffres décimaux en binaire naturel. Comme le plus élevé des chiffres décimaux est 9, il faut donc 4 bits pour coder chacun des chiffres. Le rendement de conversion de ce code n'est pas maximal, car à l'aide de 4 bits, on peut obtenir 24 combinaisons binaires différentes ; il existe donc six combinaisons  qui ne sont pas utilisées.

Exemple : donnez l'équivalent binaire naturel et l’équivalent DCB du nombre décimal 145 :

(145)10 = 27 + 24 + 20 = 128 + 16 + 1 = (10010001)2

 (145)10 = (0001  0100  0101)DCB

On remarque d'après ce qui précède que le code BCD utilise plus d'éléments binaires (bits) que le code binaire naturel (on dit aussi binaire pur)  pour représenter le même nombre.

I.4.2) Les codes non pondérés

Dans ce cas la conversion n'est possible qu'à partir d'un tableau de correspondance car les positions binaires correspondantes ne sont affectées d'aucun poids.

a) Le code excédent trois (ou majoré de trois)

Ce code a une certaine parenté avec le code DCB, et on y a parfois recours en raison de la facilité avec laquelle certains calculs arithmétiques sont effectués.

On obtient ce code de la même manière que le code DCB, sauf qu'ajoute à chaque chiffre décimal avant d'opérer la conversion.

Exemple : Convertissez (67)10 en sa représentation dans le code majoré de trois.

Le tableau ci-dessous donne la liste des représentation DCB et code majoré de trois pour les dix chiffres décimaux :

Décimal

DCB

Majoré de trois

0

0000

0011

1

0001

0100

2

0010

0101

3

0011

0110

4

0100

0111

5

0101

1000

6

0110

1001

7

0111

1010

8

1000

1011

9

1001

1100

On remarque que dans ces deux codes, seuls dix des seize combinaisons possibles sont retenues. Cependant, dans le code majoré de trois, on n'utilise pas les mêmes combinaisons que dans le code DCB. Ainsi, dans le code majoré de trois, les groupes non valides sont :

0000, 0001, 0010, 1101, 1110 et 1111

Le code excédent trois est un code autocomplémentaire, dans ce sens où le complément à un d'un nombre exprimé en excédent trois, représente le complément à neuf du nombre décimal qui lui correspond :

(6)10 Exc. 3
<=>
(1001)Exc. 3
Complément à 9  

Complément à 1

(3)10 <=>
Exc. 3
(0110)

 

b) Le code GRAY (ou binaire réfléchi ou CBR)

Ce code appartient à la catégorie des codes dit à distance minimale, du fait qu'une représentation codée ne diffère de celle qui la précède que par une seule variable (bit). On dit aussi que les termes sont adjacents. Comme la plus part des codes non pondérés, ce code ne convient pas aux calculs arithmétiques, mais se trouve surtout dans les applications d'entrée et de sortie et dans les convertisseurs analogique-numérique.

Le tableau ci-dessous nous montre en parallèle les représentations du code Gray pour les seize premiers nombres décimaux et celle du code binaire pur (naturel) :

Décimal

Binaire naturel (CBN)

Binaire réfléchi (CBR)

0

0000

0000

1

0001

0001

2

0010

0011

3

0011

0010

4

0100

0110

5

0101

0111

6

0110

0101

7

0111

0100

8

1000

1100

9

1001

1101

10

1010

1111

11

1011

1110

12

1100

1010

13

1101

1011

14

1110

1001

15

1111

1000

     

      Exemple : Trouvez l'équivalent binaire réfléchi du nombre décimal 87.

Pour trouver l'équivalent CBR d'un nombre décimal, il faut d'abord le convertir en binaire naturel:

(87)10 = (64 + 16 + 4 + 1)10 = 26 + 24 + 22 + 20 = (1010101)2

Ensuite il faut ajouter le CBN trouvé à lui-même décalé d'un rang vers la gauche, sans tenir compte de l’éventuelle retenue et en abandonnant dans le résultat le bit du plus faible poids (le bit le plus à droite) :

 

l’équivalent CBR du (87)10 est donc :

(87)10 = (1111100)2

Le code Gray sert souvent dans des applications où d'autres codes, comme le code binaire peuvent produire des solutions incertaines, au moment de transitions (le temps que mette un signal pour passer d'un état à un autre)  entraînant le changement de plusieurs bits dans le code. Par exemple, dans le code binaire naturel, lorsqu'on passe de 0001 à 0010, les deux premiers bits changent en même temps. Suivant le circuit qui génère les bits, il pourra y avoir une différence importante entre les temps de transitions des divers bits. Si tel est le cas, la transition 0001 à 0010 pourra occasionner un ou plusieurs états intermédiaires. En supposant que le deuxième bit change avant le premier, on obtient alors :

 

                                          0001

                                         0011

                                          0010

L'apparition de l'état intermédiaire est temporaire, mais il peut donner lieu à un fonctionnement imprévisible des circuits contrôlés par ces bits. D'après le tableau de correspondance, cette situation est impossible dans le code CBR car les bits ne changent jamais simultanément.

I.4.3) Les codes alphanumériques

Ce sont les codes qui permettent à un ordinateur d’être opérationnel. Autrement dit, il sera capable de traiter l’information non numérique, s'il peut reconnaître des codes qui correspondent à des nombres, des lettres, des signes de ponctuation et des caractères spéciaux (+, /, #, %). Les codes de ce genre sont dits alphanumériques.

a) Le code ASCII (American Standard Code for Information interchange)

C'est le code alphanumérique le plus répandu ; on le retrouve dans la majorité des ordinateurs. Il est utilisé pour transmettre l'information entre les ordinateurs d'une part et leurs périphériques d'autre par (imprimantes, claviers, dispositifs de visualisation,...etc.) Il utilise 7 bits, ce qui lui permet de coder 27 =(128)10 caractères différents :

 

Caractère

ASCII à 7 bits

Equivalent Hexa.

Caractère

ASCII à 7 bits

Equivalent Hexa.

blanc

010 0000

20

A

100 0001

41

.

010 1110

2E

B

100 0010

42

(

010 1000

28

C

100 0011

43

+

010 1011

2B

D

100 0100

44

$

010 0100

24

E

100 0101

45

*

010 1010

2A

F

100 0110

46

)

010 1001

29

G

100 0111

47

-

010 1101

2D

H

100 1000

48

/

010 1111

2F

I

100 1001

49

,

010 1100

2C

J

100 1010

4A

=

011 1101

3D

K

100 1011

4B

retour

000 1101

0D

L

100 1100

4C

interligne

000 1010

0A

M

100 1101

4D

0

011 0000

30

N

100 1110

4E

1

011 0001

31

O

100 1111

4F

2

011 0010

32

P

101 0000

50

3

011 0011

33

Q

101 0001

51

4

011 0100

34

R

101 0010

52

5

011 0101

35

S

101 0011

53

6

011 0110

36

T

101 0100

54

7

011 0111

37

U

101 0101

55

8

011 1000

38

V

101 0110

56

9

011 1001

39

W

101 0111

57

a

110 0001

61

X

101 1000

58

:

:

:

Y

101 1001

59

z

111 1010

7A

Z

101 1010

5A

Ce code est aussi appelé code télégraphique international N° 5 et peut être représenté par :

On remarque sur le chronogramme précédent que le caractère à transmettre est précédé par un bit de départ et suivi par trois bits, un de contrôle et deux d’arrêt. Chaque bit peut être à l'état bas (0 logique) ou à l’état haut (1 logique). Un marquage temporel est nécessaire pour distinguer deux bits successifs identiques ; il est égal à 9.9 ms. dans ce cas, ce qui nous permet de déterminer la vitesse de transmission :

I.4.4) Les codes redondants

(codes détecteurs et éventuellement correcteurs d'erreurs)

Chaque fois qu'une information transite d'un émetteur vers un récepteur, Il faut être sur que celle-ci soit transmise sans aucune modification (erreur). Pour cela, il faut effectuer des contrôles, en utilisant judicieusement un code détecteur et éventuellement correcteur d'erreurs. La principale source des erreurs de transmission est  le bruit électrique, c'est-à-dire les fluctuations de tension et de courant parasite qui se produisent dans tous les appareils électriques à des degrés divers. Ce phénomène peut être présenté par le schéma synoptique suivant :

On remarque sur le schéma précédent, que le signal émanant de l'émetteur est exempt de bruit et qu'avant que le signal atteigne le récepteur, un certain "bruit" se superpose au signal original modifiant ainsi son allure et par conséquent l'information qu'il transporte, bien évidemment dans le cas le plus défavorable (rapport signal/bruit faible).

a) Les codes p parmi n

A chaque chiffre décimal correspond n bits, dont p sont à 1 et n -p à 0. Ainsi en recevant nombre de 1, différent de p, on sait qu'il y a une erreur de transmission. Bien que ces codes soient non pondérés dans leur ensemble, ils peuvent l'être partiellement. C'est le cas pour les deux codes "2 parmi 5" auxquels on affecte les poids 7 4 2 1 0 ou 8 4 2 1 0 avec certaines anomalies. Ces codes permettent de détecter au maximum une seule erreur mais ne permettent  pas de la corriger.

Chiffre décimal

Poids

7 4 2 1 0

Poids

8 4 2 1 0

0

      1 1 0 0 0  §

     1 1 0 0 0  §

1

0 0 0 1 1

0 0 0 1 1

2

0 0 1 0 1

0 0 1 0 1

3

0 0 1 1 0

0 0 1 1 0

4

0 1 0 0 1

0 1 0 0 1

5

0 1 0 1 0

0 1 0 1 0

6

0 1 1 0 0

0 1 1 0 0

7

1 0 0 0 1

     1 0 1 0 0  §

8

1 0 0 1 0

1 0 0 0 1

9

1 0 1 0 0

1 0 0 1 0

§ anomalie pour le poids

b) Le code biquinaire

Tout chiffre décimal est représenté par deux groupes de bits, chaque groupe ne contenant qu'un seul 1 :

 

1° groupe

2° groupe

Chiffre décimal

Poids

5 0

Poids

4 3 2 1 0

0

0 1

0 0 0 0 1

1

0 1

0 0 0 1 0

2

0 1

0 0 1 0 0

3

0 1

0 1 0 0 0

4

0 1

1 0 0 0 0

5

1 0

0 0 0 0 1

6

1 0

0 0 0 1 0

7

1 0

0 0 1 0 0

8

1 0

0 1 0 0 0

9

1 0

1 0 0 0 0

Ce code permet de détecter 2 erreurs à condition qu'elle ne soit pas dans le même groupe ; par contre, il ne permet ni de les localiser ni de les corriger.

C) Les codes avec élément binaire (bit) de parité

La plupart des équipements numériques actuels sont conçus pour être relativement "insensibles" au bruit. Cependant, une probabilité d'erreur aussi faible qu'elle soit, peut être gênante dans les systèmes numériques où la vitesse de transmission est assez élevée (plusieurs millions de bits par second). Il faut donc, comme cela a été rappelé plus haut, effectuer des contrôles afin de rendre ces systèmes "plus fiables". L'une des méthodes la plus simple et la plus répandue est la détection d'erreurs par la méthode de la parité.

Le principe de cette méthode, consiste à associer un bit supplémentaire appelé  bit de parité à l'information à transmettre (groupe de bits). La parité sera dite paire, si le nombre de 1 dans le groupe (en tenant compte du bit de parité) est pair ; elle sera dite impaire dans le cas contraire. Il y a donc deux méthodes de contrôle au moyen de la parité:

-  Méthode de contrôle de la parité paire, on fixe le bit de parité à 0 ou à 1, de manière à obtenir un nombre nul ou paire de 1 (en comptant le bit de parité).

Exemple :soient les deux groupes à transmettre :

Premier groupe : 1001011 (caractère K en code ASCII) ;

   Deuxième groupe : 0110111 (chiffre 7 en code ASCII).

On remarque que : le nombre de 1, est paire dans le premier groupe, impaire dans le deuxième groupe. Il faut donc positionner le bit de parité respectivement à 0 et puis à 1 :

 

bit de parité associé au 1er groupe              0  1001011

 

 bit de parité associé au 2ème groupe                    1  0110111

- Méthode de contrôle de la parité impaire, le principe est exactement le même que pour la parité paire, sauf que dans le cas de la parité impaire, il faut que le nombre de 1 dans l'information à transmettre, soit impaire. En conservant, les deux groupes précédents, on obtient donc :

 

bit de parité associé au 1er groupe              1  1001011

bit de parité associé au 2ème groupe                    0  0110111

Quelle que soit la méthode de contrôle utilisée, paire ou impaire, le bit de parité fait partie intégrante de l'octet (8 bits) à transmettre. Ainsi, le code ASCII à 7 bits, étudié précédemment, devient un code  à 8 bits (voir, le chronogramme représentant le code ASCII, "bit de contrôle de transmission"). 

Lorsque le récepteur, reçoit l’information codée sur 8 bits, il vérifie que le nombre de 1 correspond bien à la parité choisie (une même parité pour l'émetteur et pour le récepteur).

Remarques:

avec cette méthode, on ne peut détecter qu'une seule erreur ;

pour localiser le bit erroné, il faut coder dans les deux dimensions selon les lignes (contrôle horizontal) et les colonnes (contrôle vertical), de la même façon que précédemment.

Comme exemple de codes détecteurs et correcteurs d'erreur(s), on peut citer le code de Hamming, dont le principe est d'associer à l'information binaire à transmettre, des clefs de parité ou d'imparité.