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 = 0 (100011)2
- (35)10 = 1 (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é.
|