Chapitre 1 Logique

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 21

Chapitre 1 : Systèmes de numération et Codage de

l’information

1 Bits et signaux électriques


L’information est stockée et véhiculée dans un ordinateur, logiquement sous forme de chiffres binaires
ou bits (binary digit), et physiquement sous forme de signaux électriques. La logique binaire est utilisée
parce qu’il est plus facile de construire des systèmes électriques possédant deux états stables, et parce
qu’on a maintenant beaucoup de résultats mathématiques en algèbre de Boole, mais des implémentations
sur des systèmes possédant plus de deux états stables sont envisageables.

Ces deux états sont notés ’0’ et ’1’ ; ils correspondent le plus souvent aux deux tensions électriques 0v
et +Vcc respectivement, VCC valant exactement +5v pour des circuits utilisant la technologie TTL, et une
valeur comprise entre 2v et 15v environ en technologie CMOS (des valeurs de Vcc=3.3v, 2.5v et 1.8v
étant utilisée de plus en plus souvent).

Les circuits logiques qui sont utilisés pour combiner et transmettre les signaux électriques logiques ont
des caractéristiques non linéaires qui ont entre autres pour fonction de remettre en forme un signal
déformé par le bruit.

On voit sur la figure ci dessous une porte « non » qui inverse le bit d’entrée, tout en produisant un signal
de sortie de meilleure qualité que le signal d’entrée.

Les signaux pourront donc traverser un nombre quelconque d’étages de circuits logiques sans que les
déformations initiales ne soient amplifiées.

1
2 Les systèmes de numération
Il est important de connaître les différents systèmes car ils sont utilisés en informatique et plus
généralement dans le traitement de l'information. Selon le contexte il peut être plus judicieux d'utiliser un
code plutôt qu'un autre, il faut donc savoir comment passer de l'un à l'autre.

La représentation polynomiale
On utilise les " systèmes de numération" pour compter des objets et de les représenter par des nombres.
Trois notions interviennent dans un système:
* la base B du système, c'est un nombre entier quelconque.
* Les digits du système sont des caractères différents et représentent chacun un élément de la base; il y
en a donc B au total.
* Poids du digit selon son rang.
Quelque soit la base employée, Un système de numérotation positionnel pondéré à base B suit la relation
polynomiale suivante :

a0: chiffre de poids 0 appelé le chiffre de poids faible

an-1: chiffre de poids n-1 appelé le chiffre de poids fort.

Si la base 10 nous est familière, d’autres bases existent et les bases les plus utilisées en informatique sont
les bases 10, 2, 8 et 16 appelées respectivement « décimale », « binaire », « octale » et « hexadécimale ».

2.1 Le système décimal


Comme c'est le système de représentation naturel pour tout le monde, il nous servira à poser les bases de
la numération. C’est le système de base 10 que nous utilisons tous les jours. Il comprend dix digits : 0, 1,
2, 3, 4, 5, 6, 7, 8 et 9 appelés chiffre.

Notation - Exemple du nombre 2356 dans ce système


Par convention nous l’écrirons N=(2356)10. L’indice '10' indique la base dans laquelle le nombre est écrit.
Nous verrons plus tard que cela a son importance.

Décomposition du nombre dans sa base


Ce nombre N peut être écrit sous la forme suivante :
N = 2.10³ + 3.10² + 5.101 + 6.100 = 2000+300+50+6=2356.
Chaque chiffre du nombre est à multiplier par une puissance de 10 : c'est ce que l'on nomme le poids du
chiffre.

2
Dans le cas des nombres fractionnaires, on attribue aux chiffres situés à droite de la virgule des
puissances négatives de 10.
Exemple : N= (359.26)10
N = 3.102 + 5.101 + 9.100 + 2.10-1+6.10-2 =300+50+9+0.2+0.06.
Cette méthode de décomposition sera utilisée pour toutes les autres bases.

2.2 Le système Binaire


Le système décimal est malheureusement difficile à adapter aux mécanismes numériques, car il est
difficile de concevoir du matériel électronique fonctionnant sur dix plages de tensions différentes. Ainsi la
mémoire des ordinateurs est constituée d’une multitude de petits circuits électroniques qui ne peuvent être
que dans deux états : sous tension ou hors tension. Comme il fallait donner un nom à ces états, on a
décidé de les appeler 0 et 1. Il est donc plus naturel de compter uniquement à l’aide des chiffres 0 et 1 au
sein d’un ordinateur, c’est-à-dire en base binaire.

* Dans ce système, la base B vaut 2, et il y a donc 2 digits 0 et 1appelés dans ce cas " BIT" (Binary
digIT).
* Le système binaire est pondéré par 2 : les poids sont des puissances de 2 ; un nombre binaire sera donc
constitué d’une suite de 0 et de 1.
Exemple
N= 11001 exprimé en binaire signifie: (11001)2 =1 × 2 + 1 × 2 + 0 × 2 + 0 × 2 + 1 × 2 =
(25) .
Comptage binaire
On présente les nombres binaires en général avec un nombre fixe de bits, nombre imposé par les circuits
mémoires utilisés pour représenter ces nombres.
Suite des nombres binaires à 4 bits :

3
Le bit le plus significatif – le bit le plus à gauche – est appelé « bit de poids fort » ou MSB (Most
Significant Bit). Le bit le moins significatif – le bit le plus à droite – est appelé « bit de poids faible » ou
LSB (Less Significant Bit).
Si on utilise N bits, on peut représenter 2N valeurs différentes de 20 à 2N-1.

Connaissons les systèmes binaire et décimal, étudions maintenant deux autres systèmes de numération
très répandus dans les circuits numériques. Il s'agit des systèmes de numération octale (base de 8) et
hexadécimal (base de 16) qui servent tous les deux au même but, soit celui de constituer un outil efficace
pour représenter de gros nombres binaires.

2.3 Le système Octal


–base B=8 ;
–8 symboles : {0, 1, 2, 3, 4, 5, 6, 7} ;
Exemple : N=(536)8=5x82+3x81+6x80=(350)10

L’intérêt de ce système est que la base 8 est une puissance de 2 (8= 23), donc les poids sont aussi des
puissances de 2. Chaque symbole de la base 8 est exprimé sur 3 éléments binaires : (ai)8=bi2bi1bi0
Exemple : (52.3)8=(101010,011)2

2.4 Le système Hexadécimal


Les mots manipulés par un ordinateur ont souvent une largeur supérieure à 16 ou 32 bits, et sont donc
difficiles à transcrire en binaire. Pour obtenir une écriture concise, on utilise souvent la base 16, appelée
hexadécimal , dont les 16 chiffres sont notés : 0,1,2,3,4,5,6,7,9,A,B,C,D,E,F. Chaque chiffre hexadécimal
permet de coder 4 bits (). Pour passer d’une notation binaire à une notation hexadécimale, il suffit
de grouper les bits par paquets de 4, de droite à gauche à partir des poids faibles.

Exemple : (1AB) 16 en base 10 ?


Nous allons décomposer le nombre dans sa base, ce qui nous donne :N = 1.16 2+ A.16 1+ B.160.
Il faut maintenant remplacer les lettres par leur équivalent : N = 1.16 2+ 10.16 1+ 11.160.
Soit (1AB)16=(427)10
–chaque symbole est exprimé en binaire sur 4 bits. (Coder 4 bits par un seul symbole).
La représentation hexadécimale est principalement utilisée pour représenter un nombre binaire sous forme
plus compacte. Un nombre en hexadécimal comprend 4 fois moins de chiffres!

2.5 Conversion d’un système de numération à un autre


Le transcodage est l’opération qui permet de passer de la représentation d’un nombre exprimé dans une
base à la représentation du même nombre mais exprimé dans une autre base.

2.5.1 Passage D'un Système De Base « A » au Système Décimal


Avec ce que nous venons de voir, la transformation est relativement facile. Il suffit de suivre les étapes
suivantes :
- Décomposer le nombre dans sa base.
- Remplacer éventuellement les symboles dans leur équivalent décimal.
- Effectuer l'opération pour avoir un résultat en base 10.

4
2.5.2 Passage d'un Système Décimal à un système de Base « A »
La règle à suivre est les divisions successives :
* On divise le nombre par la base b
* Puis le quotient par la base b
* Ainsi de suite jusqu’à l’obtention d’un quotient nul
* La suite des restes des divisions successives pris dans l’ordre inverse correspond aux symboles de la
base visée.
* On obtient en premier le chiffre de poids faible et en dernier le chiffre de poids fort.

* Pour la partie fractionnaire on multiplie par B jusqu’à obtenir un résultat nul ou la précision souhaitée.
A chaque multiplication nous obtenons une partie entière et un reste. Il est important de noter que le
nombre binaire résultant s'obtient en écrivant le premier chiffre à la position du bit de poids le plus fort
(MSB).

a) Conversion décimal vers binaire

5
b) Conversion décimal vers octal

Il est possible de convertir un nombre décimal entier en son équivalent octal en employant la méthode
de la répétition de divisions, la même qu'on a utilisée pour la conversion décimal-binaire, mais cette fois-
ci en divisant par 8 plutôt que par 2.
Exemple
(73)10= (?)8

Notez que le premier reste devient le chiffre de poids le plus faible du nombre octal et que le dernier reste
devient le chiffre de poids le plus fort.

c) Conversion décimal vers Hexadécimal


Pour convertir un nombre décimal en un nombre hexadécimal, il faut procéder de la même façon, mais
cette fois en divisant par 16.
Exemple Transformation du nombre (427)10 en base hexadécimal
L'ensemble des opérations nous donne le résultat suivant :

Le problème est que les symboles « 11 » et « 10 » n'existent pas dans la base 16. Il faut les remplacer par
leur équivalent :

La lecture se fait de la même manière que précédemment. Le résultat est donc : (1AB16.

d) Tableau de correspondance
A partir de ces techniques nous pouvons établir le tableau de correspondance d'une même quantité dans
différentes bases.

6
e) Conversion octal-binaire/ binaire-octal
Pour l'instant nous n'avons vu que des techniques de conversion tournant autour du système décimal.
Dans le cas de la conversion binaire vers octal, il n'est pas nécessaire de partir du binaire pour aller vers le
décimal, puis du décimal aller vers l'octal.
On peut remarquer que 8 = 23 ; On peut donc faire correspondre à chaque digit d'un nombre exprimé en
octal un ensemble de 3 bits du même nombre exprimé en binaire.
Exemple
(763)8=( ?)2=(111)(110)(011) =(111110011)2
La conversion inverse, binaire → octal, se fait de la même façon, en décomposant le nombre binaire par
ensembles de 3 bits en portant du chiffre de poids le plus faible puis de convertir ces triplets en leur
équivalent octal.
Exemple
(010111011101)2=(2735)8
Notez l’ajout d’un zéro à gauche du bit de poids le plus fort pour obtenir un nombre juste de triplet.

f) Conversion hexadécimal-binaire/ binaire- hexadécimal


De la même manière, on peut remarquer que 16=24. On fera donc correspondre à chaque digit d'un
nombre hexadécimal 4 bits du nombre binaire correspondant.
Exemple : Convertir N = (ECA) 16 = (1110 1100 1010)
E C A
La conversion inverse, binaire → hexadécimal, se fait de la même façon, en décomposant le nombre
binaire par ensembles de 4 bits en portant du chiffre de poids le plus faible puis de remplacer chacun
par son équivalent hexadécimal.
Exemple : Convertir N = (1 1000 0110 1111)2 = ( 1 8 6 F )16
0001 1000 0110 1111

7
g) Conversion d'une base i vers base j

3 Représentation des nombres entiers relatifs (Binaire signé)


Plusieurs approches peuvent être adoptées pour représenter les entiers relatifs dans les systèmes
numériques : la représentation signe -valeur absolue et la représentation en complément à deux. Chacune
de ces approches suppose l’utilisation d’un nombre de bits fixé au préalable.

3.1 Représentation signe-valeur absolue (SM )


L’approche la plus simple permettant de représenter un nombre signé consiste à réserver un bit pour le
signe et les autres bits pour la valeur absolue. Le bit le plus significatif (MSB) est utilisé pour représenter
le signe du nombre :
 si le bit le plus fort = 1 alors nombre négatif
 si le bit le plus fort = 0 alors nombre positif
 Les autres bits codent la valeur absolue du nombre.

Exemple : Soit à déterminer la représentation signe-valeur absolue de chacun des nombres décimaux 55,
-60 et 0 sur 8 bits.

5510= 001101112 et +55= 00110111SM

6010= 001111002 et -60 =10111100SM

+0 = 000000002 et -0 = 10000000SM

La valeur d’un nombre décimal N ayant une représentation signe-valeur absolue est donnée par :

= (−1) 2

La représentation signe-valeur absolue possède deux inconvénients. Le premier est lié aux deux
représentations, +0 et -0, du nombre 0. Le second tient au fait que cette représentation n’est pas
appropriée pour les opérations d’addition, La représentation par complément à deux permet de remédier à
ces inconvénients.

8
3.2 Représentation par complément à deux
a) Notation en complément à 1 (complément restreint)
Le complément à 1 d'un nombre binaire s'obtient en changeant chaque 0 par un 1 et chaque 1 par un 0.
Autrement dit, en complémentant chaque bit du nombre. Voici une illustration de cette marche à suivre:
1 0 1 1 0 1 nombre binaire initial
0 1 0 0 1 0 complément de chaque bit pour obtenir le complément à 1(Cp à 1).
(b) Notation en complément à 2 (complément vrai)
Il s'obtient simplement en prenant le complément à 1 de ce nombre et en ajoutant 1 au bit de son rang de
poids le plus faible.
Complément à 2 de N = Cp à1(N) + 1
Exemple
Calculer le Cp à 2 de 1 sur 4 bits.
Nous commençons par exprimer le nombre 1 sur 4 bits puis nous appliquons la règle de calcul du
complément à 2.

La valeur d’un nombre décimal N ayant une représentation par complément à deux est donnée par :

=− 2 + 2

Avec des mots de n éléments binaires, on obtient 2n valeurs différentes, de 0 à 2n-1-1 pour les valeurs
positives et de -1 à -2n-1 pour les valeurs négatives, soit des nombres compris entre -2n-1 à 2n-1-1.

9
4 Opérations arithmétiques en binaire
Les diverses opérations arithmétiques qui interviennent dans les ordinateurs et les calculatrices portent
sur des nombres exprimés en notation binaire. es opérations arithmétiques obéissent en binaire aux
mêmes règles qu’en décimal, il suffit juste de se rappeler que la base de numération est 2 et non plus 10.

4.1 Addition:
L’addition en binaire se fait avec les mêmes règles qu’en décimal : on commence par additionner les
bits de poids faibles ; on a des retenues lorsque la somme de deux bits de même poids dépasse la valeur
de l’unité la plus grande (dans le cas du binaire:1) ; cette retenue est reportée sur le bit de poids plus fort
suivant. La table d’addition binaire est la suivante :

Exemple : Soit à effectuer l’addition de deux nombres binaires 1011 et 0011 :


1011 11
+0011 + 3
=1110 = 14

En pratique, pour additionner plus de deux nombres, un système numérique détermine d’abord la somme
de deux premiers nombres puis ajoute cette somme aux troisième nombre, et ainsi de suite.

4.2 Soustraction:
Dans la soustraction binaire, on procède comme en décimal. Quand la quantité à soustraire est
supérieure à la quantité dont on soustrait, on emprunte 1 au voisin de gauche. En binaire, ce 1 ajoute 2 à
la quantité dont on soustrait, tandis qu’en décimal il ajoute 10.
La table de soustraction binaire est la suivante :

Exemple : Soit à soustraire le nombre 101 du nombre 1010 :


La soustraction peut être exécutée en binaire et en décimal comme suit :

1010 10 Diminuende
- 0101 - 5 Diminuteur
=0101 = 5 Différence

10
* Soustraction dans le cas des calculateurs
Dans la pratique, l’opération de base des calculateurs électroniques est l’addition. Le résultat d’une
soustraction de deux nombres binaires est en fait obtenu par l’addition du premier nombre par le
complément à 2 du deuxième. Ainsi :[ − ] = [ + (− )].
La méthode la plus utilisée pour rendre négatif un nombre binaire est la méthode du complément à 2.
On a donc : [A-B]= A+ Cp à 2 de B
1- On convertie son amplitude(N) en format proposé.
2- On ajoute un bit de signe égale à 0 pour représenter le nombre positif.
3-On prend le complément à deux du nombre positif pour représenter le nombre négatif –N.
Exemple : soit à effectuer l’opération suivante : 195 –96
195 – 96 = 195 + (-96)
Soit en binaire :
195=110000112
96 =011000002
Si l’on travail en représentation signée, le nombre 195 (+195) doit être représenté sur plus de 8 bits si l’on
veut que son bit de signe soit positif. Nous travaillerons donc sur 9 bits pour représenter son signe . On
aura donc :
195= 0110000112
96 = 0011000002
Cpà1 = 110011111
+ 1

Cpà2 = 110100000= (-96)

L’opération 195 – 96 = 195 + (-96) s’écrit :

195 011000011
+(-) 96 + 110100000
= 99 1001100011 Puisque l’on travaille sur 9 bits, cette retenue est négligée.

4.3 Multiplication:
La multiplication s’effectue en formant un produit partiel pour chaque bit du multiplicateur, et ensuite en
additionnant tous les produits partiels pour générer le résultat. Il est à noter que chaque produit partiel est
décalé d’une position vers la gauche par rapport au précédent, et le produit de deux nombres de n bits
peut posséder jusqu'à 2n bits.
La table de multiplication en binaire se résume comme suit :

11
0×0= 0 ; 0×1= 0 ; 1×0 =0 ; 1×1 =1

Exemple : Soit à multiplier le nombre1101 par 1001.


L’exécution de la multiplication en binaire se traduit par :
1101 Multiplicande
× 1001 Multiplicateur
1101 1er produit partiel
0000
0000
+1101
1110101 Produit

Cette opération est équivalent à 13 x 9=117 en décimal.

5 Les codes numériques


Codage : opération qui établit une correspondance entre un ensemble source (nombre, caractère,
symbole) vers un ensemble destination contenant des combinaisons de 0 et de 1.

On distingue deux catégories de codes: les "codes numériques" qui permettent seulement le codage des
nombres, et les "codes alphanumériques" qui permettent le codage d'une information quelconque
(ensembles de lettres, de chiffres et de symboles).

5.1 Codes numériques pondérés


(a) Code binaire naturel (pur)
Le code binaire pur est un code pondéré par des puissances de 2, dans lequel on exprime un nombre
selon le système de numération binaire.
Quelques notions:
* un quartet : c'est un mot de 4 bits (0-15)
* un octet : c'est un mot de 8 bits (0-255)
* un "kilo" : unité de capacité de traitement numérique (10 bits: 0-1023).
Exemple :
011001012 =26+25 +22+20=10110

(b) Code binaire en complément à 2


Tout comme le code binaire pur, c’est un code pondéré par des puissances de 2 dont le bit de poids fort
a un poids négatif. C’est le code le plus utilisé en arithmétique binaire.
Exemple
100110112c =-27+24+23+2+1=-10110

(c) Code DCB (décimal codé binaire)


Dans le code DCB, Si on représente chaque chiffre d'un nombre décimal par son équivalent binaire, on
obtient le code dit décimal codé binaire. Comme le plus élevé des chiffres décimaux est 9, il faut donc 4

12
bits pour coder les chiffres. C’est un code pondéré avec les poids 1, 2, 4, 8, 16... Plus facile pour coder
des grands nombre, il est surtout utilisé pour l’affichage des nombres.

Remarque : Il ne faut pas confondre le code DCB et le code binaire pur : quand on code selon le code
binaire pur on prend le nombre dans son intégralité et on le convertit ; par contre, quand on code en DCB
on code chaque chiffre indépendamment les uns des autres.

Exemple
(137)10 =(010001001)2
=(000100110111)BCD

Le code BCD nécessite 12 bits pour représenter 137 tandis que le nombre binaire pur n'a besoin que de
8 bits. Il faut plus de bits en BCD qu'en binaire pur pour représenter les nombres décimaux de plus d'un
chiffre.
Le code BCD établit une correspondance entre chaque chiffre d'un nombre décimal et un nombre
binaire de 4 bits. Évidemment, seuls les groupes binaires 0000 à 1001 sont utilisés. Le code BCD ne fait
pas usage des groupes 1010, 1011, 1100, 1101, 1110 et 1111. Autrement dit, seuls dix des 16
combinaisons des 4 bits sont utilisés. Si l'une des combinaisons "inadmissibles" apparaît dans une
machine utilisant le code BCD, c'est généralement le signe qu'une erreur s'est produite.
Comme tous les systèmes de codage pondérés, il est possible d’appliquer des opérations arithmétiques
aux nombres codés en DCB.

 Addition en DCB
L’addition de deux nombres codés en DCB ne pose pas de problème tant que le résultat est inférieur ou
égal à 9 :
5 0101 BCD de 5
+ 4 0100 BCD de 4
=9 1001 BCD de 9
L'addition est effectuée comme une addition binaire normale et la somme est 1001, soit le code BCD de
9.
Voici un autre exemple: additionnons 45 à 33.

Les codes de 4 bits associés à 5 et à 3 sont additionnés selon les règles binaires pour donner 1000, ce
qui est le code BCD de 8. De même, l'addition des chiffres décimaux de second rang donne en binaire
0111, ce qui est le code BCD de 7. Le total est 0111 1000, soit le code BCD de 78.

13
Par contre, dès que le résultat est supérieur à 9, il faut apporter une correction en additionnant 6, de
manière à obtenir une réponse valide. Ceci est dû au fait que l’on représente un nombre modulo 10 avec
un code modulo 16 : 16-10=6.
Exemple

Voyons un autre exemple: additionnez 47 à 35 en BCD:

L'addition des codes de 4 bits pour 7 et 5 produit une somme non valide que l'on corrige en additionnant
0110 sur ces 4 bits de poids faible. Notez que ceci produit un report de 1, qui est ajouté à la somme BCD
des chiffres du second rang.

Résumé de l'addition en BCD:

 Addition binaire ordinaire des représentations BCD de tous les rangs.


 Pour les rangs où la somme est égale ou inférieure à 9, aucune correction ne s'impose et la somme
est une représentation BCD valide.
 Quand la somme des deux chiffres est supérieure à 9, on ajoute une correction de 0110 pour
obtenir la représentation BCD exacte. Il se produit toujours un report sur le chiffre de rang
immédiatement à gauche, soit lors de l'addition initiale (première étape) ou de l'addition de la
correction.
La soustraction en DCB se comporte exactement comme l’addition, au signe près.
Conversion BCD-binaire / binaire-BCD
* Une conversion est nécessaire pour convertir un nombre exprimé en BCD en binaire. La seule
possibilité est de passer par la valeur décimale.
NBCD=> l’exprimé en décimal => convertir en binaire.
N2=> convertir en décimal => l’exprimé en BCD.

14
5.2 Codes numériques non pondérés

5.2.1 Code Excédent de trois (Excess 3 noté XS3)

Le code excédent de trois consiste à prendre chaque chiffre décimal, à lui additionner 3, puis à
convertir le résultat obtenu en binaire. On a parfois recours à ce code en raison de la facilité avec laquelle
on peut faire certains calculs arithmétiques. La valeur d’un mot en code excédent de trois est en fait égale
au code DCB auquel on a ajouté 3.

Exemple

4810=01111011XS3

5.2.2 Code de Gray (binaire réfléchi)

Le code Gray est un code non pondéré, car n’associant pas des poids spécifiques aux positions des bits.
Il ne convient pas pour les opérations arithmétiques. La représentation de gray permet de passer du code
d’un nombre au suivant en ne changeant qu’un seul bit. Le tableau ci-dessous donne la représentation
binaire et le code gray des nombres décimaux de 0 à 15.

Remarque :
Le code Gray est le code utilisé dans les tableaux de Karnaugh, afin de coder la valeur des différentes
entrées de telle sorte qu’une seule d’entre elles ne change de valeur d’une ligne à l’autre, ou d’une
colonne à l’autre.

- La conversion d’un nombre binaire en code Gray s’effectue en exploitant les remarques suivantes :
* Le bit de poids le plus fort du code gray, est le même que le MSB correspondant du nombre binaire ;
* En commençant par la gauche, additionner sans tenir compte de la retenue chaque paire de bits
adjacents du code binaire pour obtenir le bit suivant du code Gray.

15
Exemple : soit à convertir le nombre binaire en code gray.
Nombre binaire 1+1+0+0+1

Code Gray 1 0 1 0 1

Pour le nombre 110012, le code Gray correspondant est 10101.


- Pour la conversion d’un code Gray en code binaire :
* Le MSB du nombre binaire, est le même que le MSB correspondant du code Gray ;
* En commençant par la gauche, additionner sans tenir compte de la retenue chaque nouveau bit du code
binaire au bit suivant du code Gray pour obtenir le bit suivant du code binaire.

6. Les Codes alphanumériques


Puisqu’un texte est une suite de caractères, on commence par s’intéresser à la représentation des
caractères, c’est-à-dire entre autres choses aux lettres minuscules et majuscules, aux chiffres, aux signes
de ponctuation et aux symboles mathématiques. Pour représenter ces caractères, on attribue un nombre à
chacun.
* codes ASCII :
Le code ASCII (American Standard Code for Information Interchange) est utilisé en particulier pour
l'échange d'informations entre une unité centrale et des périphériques en informatique (clavier,
imprimante,..).
Il représente 95 caractères : les 26 lettres minuscules, les 26 lettres majuscules, les 10 chiffres, les 32
symboles ! " # $ % & ’ ( ) * + , – . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~ et 1 signe d’espace. Il représente aussi
33 autres symboles de mise en page, par exemple le retour chariot qui signale la fin de la ligne et le saut
de page qui signale le passage à la page suivante. Le code ASCII représente donc 95+33=128=2 7
caractères, par des nombres qui peuvent eux-mêmes être représentés en binaire par des mots de sept bits.
Ils sont en fait représentés par des mots de huit bits, le premier étant toujours un zéro.
Le code ASCII était à l’origine conçu pour des textes écrits en anglais, comme l’indique son nom,
American Standard Code for Information Interchange. Il n’est pas adapté pour représenter des textes
écrits dans d’autres langues, C’est pourquoi on a tout d’abord conçu une extension du code ASCII, le
code latin-1, qui contient 191 caractères. Aux 128 caractères du code ASCII, qui sont représentés comme
en ASCII, s’ajoutent les lettres « é », « É », « è », « ç », « æ », « ñ », « ö » qui permettent la
représentation les textes écrits dans la plupart des langues d’Europe de l’Ouest. Ensuite, pour représenter
les textes écrits en grec, russe, chinois, japonais, coréen, etc., il a fallu proposer un format universel :
Unicode. Unicode recense près de 110 000 caractères et associe un nom et un numéro à chacun. A priori,
ce numéro se code sur 32 bits. Cependant, Unicode existe en plusieurs déclinaisons, parmi lesquelles
UTF-32, dans laquelle chaque caractère est ainsi exprimé sur 32 bits, et UTF-8, dans laquelle les
caractères les plus courants sont exprimés sur 8 bits et les moins courants sur 16, 32 ou 64 bits.
Cependant, tous ces formats reposent sur une même idée : associer un nombre, c’est-à dire un mot
binaire, à chaque caractère. Tous ces formats sont accessibles sur le Web.

16
Trouver la représentation en ASCII binaire d’un texte
En utilisant la table représentée ci dessous, on cherche le code ASCII de chaque caractère. Puis on traduit
chacun de ces nombres en représentation binaire.

Décoder un texte représenté en ASCII binaire


On découpe la suite de bits en octets, on traduit chaque octet en décimal, puis on cherche en utilisant une
table, le caractère exprimé par chacun de ces nombres.

ASCII Description
NUL (NULL) : caractère nul
0
Typiquement (et spécialement en PureBasic) utilisé pour indiquer la fin d'une chaîne.
1 SOH (Start Of Heading) : début de titre

17
Indique le début d'un bloc de données, ou la zone d'en-tête d'un bloc de données.
STX (Start of TeXt) : début de texte
2 Typiquement envoyé comme premier caractère dans un bloc de texte, pendant les
communications.
ETX (End of TeXt) : fin de texte
3 Typiquement envoyé comme dernier caractère dans un bloc de texte, pendant les
communications.
EOT (End Of Transmission) : fin de transmission
4
Utilisé pour indiquer la fin d'une transmission.
ENQ (ENQuiry) : requête - invitation à la transmission
5
Envoyé à un récepteur afin d'obtenir une réponse.
ACK (ACKnowledge) : accusé de réception
6
Envoyé par un récepteur pour indiquer qu'il a reçu et/ou compris la requête.
BEL (BELL) : cloche
7
Produit un signal sonore (provoque l'émission d'un 'bip' par le haut-parleur du PC)
BS (BackSpace) : retour arrière
8 Déplace le curseur d'une position vers la gauche (pourrait également effacer le caractère à
gauche du curseur avant d'effectuer le mouvement)
HT (Horizontal Tab) : tabulation horizontale
9
Typiquement utilisé pour la mise en forme de tableaux dans un texte.
LF (LineFeed) : saut de ligne
Le caractère utilisé pour représenter l'action de passer une ligne sur une machine à écrire
10
ou une imprimante en mode texte. Typiquement utilisé comme, ou partie des, caractères de
fin de ligne.
VT (Vertical Tab) : tabulation verticale
11 Même chose que la tabulation (horizontale), mais le déplacement s'effectue d'une rangée
vers le bas au lieu d'une colonne vers la droite.
FF (Form Feed) : saut de page
12 Caractère typiquement utilisé pour indiquer à une imprimante (en mode texte) de passer à
la page (feuille) suivante.
CR (Carriage Return) : retour chariot
Le caractère qui représente l'action de ramener la tête d'une machine à écrire ou d'une
13
imprimante au début de la ligne. Typiquement utilisé comme, ou partie des, caractères de
fin de ligne.
SO (Shift Out) : mouvement sortant
14
Début d'un bloc de caractères dont la signification dépend de l'implémentation.
SI (Shift In) : mouvement entrant
15
Ferme la transmission du type de bloc ci-dessus.
DLE (Data Link Escape) : échappement de lien de donnée
16 Utilisé pour indiquer que le caractère de contrôle suivant devrait être interprété comme
donnée et non comme caractère de contrôle.
DC1 (Device Control 1) : contrôle de périphérique 1
Typiquement utilisé pour activer une partie d'un équipement. L'usage le plus courant
17
aujourd'hui est en tant que caractère XON dans les communications série à contrôle de flux
logiciel.
DC2 (Device Control 2) : contrôle de périphérique 2
18
Un autre caractère de contrôle de périphérique. Son usage dépend du contexte.
DC3 (Device Control 3) : contrôle de périphérique 3
19 Typiquement utilisé pour désactiver une partie d'un équipement. L'usage le plus courant
aujourd'hui est en tant que caractère XOFF dans les communications série à contrôle de

18
flux logiciel.
DC4 (Device Control 4) : contrôle de périphérique 4
20
Un autre caractère de contrôle de périphérique.
NAK (Negative AcKnowledge) : accusé de réception négatif
21
Typiquement utilisé pour signaler des données non-reçues ou non-comprises (erronée).
SYN (SYNchronous idle) : attente synchronisée
22 Comme son nom l'indique, il s'agit d'un signal envoyé à intervalle régulier pour indiquer
que le canal de communication est en attente, mais toujours actif.
ETB (End of Transmission Block) : fin de transmission de bloc
23 Utilisé pour contrôler la transmission de donnée en indiquant la fin de bloc. A ne pas
confondre avec EOT.
CAN (CANcel) : annulation
24 Signifie généralement que la donnée envoyée précédemment devrait être ignorée, bien que
les détails dépendent de l'application.
EM (End of Medium) : fin de média
25
Utilisé pour indiquer la fin d'un média, par exemple la fin d'un lecteur de bande
SUB (SUBstitute) : substitution
26
Un caractère utilisé pour indiquer qu'un caractère a été substitué.
ESC (ESCape) : échappement
Le caractère produit habituellement en appuyant sur la touche 'ECHAP' de votre clavier,
27
utilisé dans les "séquences d'échappement" pour fournir des informations de formattage
aux afficheurs de texte (consoles, imprimantes, etc..)
28 FS (File Separator) : séparateur de fichier
29 GS (Group Separator) : séparateur de groupe
30 RS (Record separator) : séparateur d'enregistrement
31 US (Unit separator) : séparateur d'unité

7. Afficheur 7 segments
Les afficheurs 7 segments sont un type d'afficheur très présent sur les calculatrices et les montres à
affichage numérique : les caractères (des chiffres, bien que quelques lettres soient utilisées pour
l'affichage hexadécimal) s'écrivent en allumant ou en éteignant des segments, au nombre de sept. Quand
les 7 segments sont allumés, on obtient le chiffre 8. Cet afficheur est composé de diodes
électroluminescentes (DEL) disposées comme le montre la figure ci-dessous.

On distingue deux types d’afficheurs : l’afficheur à anode communes et celui à cathode communes. Dans
le premier cas, toutes les anodes sont reliées et connectées au potentiel haut. La commande du segment se
fait par sa cathode mise au potentiel bas. Dans le cas de l’afficheur à cathode communes, toutes les
cathodes sont reliées et connectées au potentiel bas. La commande du segment se fait par son anode mise
au potentiel haut.

19
8. Codes détecteurs d’erreurs et auto correcteurs
Ces codes sont utilisés pour contrôler la transmission des données. Souvent, on utilise un nombre de bits
supérieur à celui strictement nécessaire pour coder l’information elle-même.

a) Les codes détecteurs de parité (à contrôle de parité)


Ce codage consiste à ajouter à la suite de chaque mot d’information à transmettre un bit de contrôle (de
parité), de telle sorte que le nombre total de chiffre 1soit de parité fixé (paire ou impaire).
Exemple
0101 0 0101 (parité paire)
0111 1 0111 (parité impaire)
Il est à noter que dans l’application de la méthode de la parité, l’émetteur et le récepteur se mettent
d’accord à l’avance sur la parité à surveiller (paire ou impaire).
Si un bit change lors de la transmission d’un nombre, la parité change, l’erreur est détectée. Si deux bits
changent lors de la transmission, la parité ne change pas, l’erreur n’est pas détectée. Ce type de code n’est
utilisé que pour la transmission dont le risque d’erreur est faible.
b) Codes doubles de parité
La problématique des codes correcteurs d’erreur est la suivante : un expéditeur A envoie un message m à
B, durant la transmission de ce message des erreurs se produisent éventuellement, et B reçoit un message
m’ qui comporte peut-être des erreurs. Il s’agit de trouver comment faire pour que B,
1- d’une part détecte l’existence d’erreurs,
2- d’autre part, si elles ne sont pas trop nombreuses, sache les corriger.
Dans certains cas, lorsqu’il est rapide de réexpédier le message, la détection des erreurs suffit.
Néanmoins, dans d’autres cas, la correction des erreurs s’avère indispensable. On se propose de détecter
les erreurs et de les corriger de façon automatique.

20
Pour détecter la place d’un élément binaire faux, il faux coder dans deux dimensions selon les lignes et
les colonnes. Comme pour les lignes, on fixe un code de parité paire ou impaire pour les colonnes. Pour
localiser l’erreur, il suffit d’employer simultanément le contrôle de parité des lignes et des colonnes. Le
tableau ci-dessous montre un exemple dont les codes sont de parité paire.
Ligne n0 bit de parité nombre de 1 par ligne
1 0 0 1 0 0 1 2
2 1 0 1 0 1 0 3 erreur
3 0 0 0 1 0 1 2
4 0 0 1 1 1 1 4
5 0 1 1 0 0 0 2
6 1 1 0 0 1 1 4
Bit de parité 0 0 1 0 1 0 2
Nombre de 1 2 2 5 2 4 4
Par colonne erreur

Code de parité paire.

L’erreur de trouve à l’intersection de la 2ème ligne et la 3ème colonne, puisque le nombre de bits est impair.
Il suffit donc de remplacer le 1 par 0 au point d’intersection.

21

Vous aimerez peut-être aussi