Académique Documents
Professionnel Documents
Culture Documents
Ainsi codé, l’image de la grandeur pourra être analysée par des circuits numériques (circuits
logiques, microcontrôleurs, calculateurs, etc.). Mais il existe plusieurs codes binaires (code
binaire signifie que chaque élément (appelé élément binaire ou bit) ne peut prendre que 2
valeurs différents), ayant chacun leurs avantages et leurs inconvénients, et possédant des
propriétés utilisées dans des applications spécifiques.
Certains sont adaptés pour le calcul numérique, d’autres seront utilisés pour réaliser des
capteurs de position délivrant un code sans aléas, d’autres encore permettent la détection
et la correction d’erreurs et seront alors utilisés pour la transmission d’informations numériques.
Lors du traitement numérique d’une information, il sera donc souvent nécessaire de passer
d’un code à un autre. Les circuits logiques permettant de réaliser cette opération sont
appelés codeurs, décodeurs, encodeurs, ou encore transcodeurs selon les cas.
Le champ d’application des systèmes numériques est très étendu. Lorsque l’application ne
nécessite pas de calculs arithmétiques, on emploie dans certains systèmes des codes
permettant d’éviter des états transitoires parasites lors de la saisie de données, ou de
visualiser facilement des chiffres ou des lettres, ou bien encore de détecter des erreurs et/ou
de les corriger dans un résultat susceptible d’être erroné. Nous présentons ci-après quelques
codes fréquemment utilisés.
Un code est dit pondéré si la position de chaque symbole dans chaque mot correspond à un
poids fixé par exemple 1, 10, 100, 1000 ... pour la numération décimale, et 1, 2, 4, 8, ... pour la
numération binaire. Les codes pondérés ont, en général, des propriétés intéressantes du
point de vue arithmétique : le code binaire pur, le code BCD.
Dans le cas des codes non pondérés, il n’y a pas de poids affecté à chaque position des
symboles. On convient simplement d’un tableau de correspondance entre les objets à coder
et une représentation binaire. De tels codes peuvent néanmoins parfois posséder des
propriétés arithmétiques intéressantes, comme le code excédent 3, le code gray.
CHAPITRE 2 : REPRESENTATION DE L’INFORMATION DANS LA MACHINE²
Remarque
Le nombre BCD est toujours en décimal !
o Il faut donc utiliser la conversion décimal à binaire pour obtenir sa valeur en
binaire.
Le BCD n'utilise qu'une partie des codes possibles :
o 12 bits en BCD => max 999
o 12 bits en binaire => max 212-1 = 4095
D’autres codes BCD existent, certains fonctionnant selon le même principe de pondération,
comme le code 2421 ou le code 5421.
2|P age
M. OUNNACI
CHAPITRE 2 : REPRESENTATION DE L’INFORMATION DANS LA MACHINE²
Lorsque le compteur passe de 001 à 010, il doit modifier deux bits. Si il y a un problème de
synchronisation entre les bits v1 et v0, le nombre 011 s’affiche pendant un court laps de
temps, bien que ce ne soit pas le résultat recherché.
Pour remédier à ce problème il est possible d’utiliser le code de Gray, inventé aux Bell Labs
par Frank Gray et breveté en 1953. La propriété principale du code gray est que le passage
d’un mot-code (nombre) au suivant entraînera toujours le
changement d’un bit et d’un seul à la fois. Ainsi, les transitions Décimal Binaire Gray
s’effectuent sans ambiguïté, éliminant les risques d’aléas. 0 0000 0000
1 0001 0001
De plus le code est cyclique pour un nombre de mot-code égal
à une puissance de 2. En revanche le code gray n’est pas
2 0010 0011
pondéré, il n’est donc pas adapté pour le calcul numérique. 3 0011 0010
Tout comme le binaire naturel, le binaire réfléchi peut coder 4 0100 0110
n’importe quel nombre entier naturel. 5 0101 0111
6 0110 0101
Remarque : le code Gray est le code utilisé dans les tableaux de 7 0111 0100
Karnaugh, afin de coder la valeur des différentes entrées de telle 8 1000 1100
sorte qu’une seule d’entre elles ne change de valeur d’une ligne
à l’autre, ou d’une colonne à l’autre.
9 1001 1101
10 1010 1111
On construit le code de Gray en recopiant les bits de façon 11 1011 1110
symétrique (effet miroir) et en procédant de façon itérative 12 1100 1010
jusqu’au bit désiré. 13 1101 1011
0 0 0 0 00 14 1110 1001
1 0 1 0 01 15 1111 1000
1 1 0 11
1 0 0 10
1 10
1 11
1 01
1 00
3|P age
M. OUNNACI
CHAPITRE 2 : REPRESENTATION DE L’INFORMATION DANS LA MACHINE²
Le code de Gray est encore très utilisé, notamment dans les ordinateurs où le compteur de
programme utilise le code de Gray pour minimiser sa consommation d’énergie. On le
retrouve également dans certains systèmes de télécommunication pour la correction
d’erreur.
Remarque
Conversion du Binaire Naturel vers le Binaire Réfléchi : il s’agit
de comparer les bits Bn+1 et le bit Bn du binaire naturel, le
résultat est BBR du binaire réfléchi qui vaut 0 si Bn+1 = Bn ou 1
sinon. Le premier bit à gauche reste inchangé.
UNIVERSITE MOULOUD MAMMERI DE TIZI-OUZOU
4|P age
M. OUNNACI
CHAPITRE 2 : REPRESENTATION DE L’INFORMATION DANS LA MACHINE²
CODE ASCII
Le code ASCII (American Standard Code for information interchange) est un code
alphanumérique, devenu une norme internationale. Il est utilisé pour la transmission entre
ordinateurs ou entre un ordinateur et des périphériques. Sous sa forme standard, il utilise 7 bits
(initialement un code à 7 bits). Ce qui permet qui permet le codage de 27=128 caractères. Il
englobe des lettres (majuscules et minuscules), des chiffes, des signes de ponctuations et un
certain nombre de signaux de commande. Toutes ces correspondances sont fixées par
l’American National Standards Institutes.
Chaque code est défini par 3 bits d’ordre supérieur b6b5b4 et 4 bits d’ordre inferieur b3b2b1b0.
Ainsi le caractère "A" a pour code hexadécimal 41H
Exemple :
Le code ASCII a été mis au point pour la langue anglaise, il ne contient donc pas de
caractères accentués, ni de caractères spécifiques à une langue. Pour coder ce type de
caractère il faut recourir à un autre code. Le code ASCII a donc été étendu à 8 bits (un
octet) pour pouvoir coder plus de caractères on parle d'ailleurs de code ASCII étendu.
5|P age
M. OUNNACI
CHAPITRE 2 : REPRESENTATION DE L’INFORMATION DANS LA MACHINE²
normes, la norme dite iso-latin-1 permet de représenter les caractères accentués présents
dans les langues latines dont le français. Ainsi, Le code ASCII étendu n'est pas unique et
dépend fortement de la plateforme utilisée.
Il nous arrive souvent d'utiliser les codes de 128 à 255 pour les accents par exemple, mais ces
codes sont différents d'un pays à l'autre ! Pas pratique pour échanger des documents. Il faut
donc trouver un code plus pratique. Il existe: c'est l 'UNICODE.
Le code Unicode est un système de codage des caractères sur 16 bits mis au point en 1991.
Le système Unicode permet de représenter n'importe quel caractère (caractères
appartenant à plusieurs langues) par un code sur 16 bits (65536 caractères),
indépendamment de tout système d'exploitation ou langage de programmation.
Il regroupe ainsi la quasi-totalité des alphabets existants (arabe, arménien, cyrillique, grec,
hébreu, japonais, coréen, latin, ...) et est compatible avec le code ASCII. L'ensemble des
codes Unicode est disponible sur le site http://www.unicode.org.
Caractères Unicode 0000 à 007F Caractères Unicode 0080 à 00FF (128 à 255) Caractères Unicode 0900 à 097F (2304 à 2431)
(0 à 127) (Caractères latins) (caractères latins, dont accentués) (caractères devanagari)
CODE UTF-8
Même si l'UNICODE est bien conçu, il reste assez peu utilisé par rapport à l'ASCII. Pour les
programmeurs, ça n'est pas toujours très facile à manipuler non plus. Ce standard se
développe de plus en plus. Les langages Java, .Net (C#) et Python supportent déjà
nativement l'UNICODE. La plupart des systèmes d'exploitation (Windows, Linux, MacOS X...)
supportent déjà l'Unicode. Unicode, dans la théorie, c'est très bien. Mais dans la pratique,
c'est une autre paire de manches. Généralement en Unicode, un caractère prend 2 octets.
Autrement dit, le moindre texte prend deux fois plus de place qu'en ASCII. C'est du
gaspillage. De plus, si on prend un texte en français, la grande majorité des caractères
utilisent seulement le code ASCII. Seuls quelques rares caractères nécessitent l'Unicode. On a
donc trouvé une astuce: l'UTF-8.
6|P age
M. OUNNACI
CHAPITRE 2 : REPRESENTATION DE L’INFORMATION DANS LA MACHINE²
Un texte en UTF-8 est simple: il est partout en ASCII, et dès qu'on a besoin d'un caractère
appartenant à l'Unicode, on utilise un caractère spécial signalant "attention, le caractère
suivant est en Unicode". Par exemple, pour le texte "Bienvenue chez Sébastien !", seul le
"é" ne fait pas partie du code ASCII. On écrit donc en UTF-8:
Toutefois, une telle représentation des nombres signés entraînerait un traitement spécial du
signe et des circuits électroniques différents selon que l’on veuille réaliser des divisions ou des
soustractions.
Exemple
7|P age
M. OUNNACI
CHAPITRE 2 : REPRESENTATION DE L’INFORMATION DANS LA MACHINE²
Avantages et inconvénients
C’est une représentation assez simple.
On remarque que le zéro possède deux représentations +0 et -0 ce qui conduit à des
difficultés au niveau des opérations arithmétiques.
UNIVERSITE MOULOUD MAMMERI DE TIZI-OUZOU
Pour les opérations arithmétiques il nous faut deux circuits : l’un pour l’addition et le
deuxième pour la soustraction.
L’idéal est d’utiliser un seul circuit pour faire les deux opérations, puisque a- b =a+ (-b)
L’inconvénient de cette représentation est résolu par une autre forme de représentation des
nombres négatifs dite représentation en complément ou encore représentation sous forme
complémentée.
REPRESENTATION EN COMPLEMENT
La représentation des nombres sous la forme en complément se fait selon deux modes qui ne
s’appliquent en principe qu’aux nombres négatifs. Le premier mode est le complément
restreint et le second est le complément vrai (ou complément à deux). Le complément
restreint d’un nombre binaire s’obtient par la simple inversion des valeurs des bits. 1100
devient 0011. Le complément vrai d’un nombre s’obtient en ajoutant 1 au complément
restreint.
Exemple
Remarque
L'entier positif est représenté sous sa forme naturelle.
L'entier négatif est représenté par le complément à 1.
Dans cette représentation, le bit du poids fort nous indique le signe (0 : positif, 1 : négatif).
Le complément à un du complément à un d’un nombre est égal au nombre lui-même
CA1(CA1(N))= N.
On appel complément à un d’un nombre N un autre nombre N’ tel que : N+N’=2n-1 tel
que n est le nombre de bits de la représentation du nombre N. Exemple : Soit N=1010 sur
4 bits donc son complément à un est : N’= (2 4 - 1)-N, N’=(16-1)10-(1010)2= (15)10 - (1010)2 =
(1111)2 – (1010)2 =( 0101)2
8|P age
M. OUNNACI
CHAPITRE 2 : REPRESENTATION DE L’INFORMATION DANS LA MACHINE²
Exemple
Quelle est la valeur décimale représentée par la valeur 101010 en CA1 sur 6 bits ?
• Le bit poids fort indique qu'il s'agit d'un nombre négatif.
• Valeur = - CA1(101010)= - (010101)2= - (21)10
Si on travaille sur 3 bits :
Si on prend deux nombres entiers a et b sur n bits, on remarque que la soustraction peut
être ramené à une addition : a – b = a + (-b), pour cela il suffit de trouver une valeur
équivalente a -b ?
a – b = a + 2n – b = a + (2n – 1) – b + 1, et on a b + CA1(b)= 2n – 1
donc CA1(b) = (2n – 1)– b
Si on remplace dans la première équation on obtient : a– b = a + CA1(b) + 1
La valeur CA1(b)+1 s’appelle le complément à deux de b : CA1(b)+1 = CA2(b)
Et enfin on va obtenir : a - b = a+ CA2(b) transformer la soustraction en une addition.
Exemple
Trouver le complément à vrai de : 11000101 sur 8 bits ?
CA2(11000101)= CA1(11000101) + 1
CA1(11000101)= (00111010)
CA2(11000101)=(00111010)+ 1 = (00111011)
9|P age
M. OUNNACI
CHAPITRE 2 : REPRESENTATION DE L’INFORMATION DANS LA MACHINE²
Remarques
Pour trouver le compétemment à 2 d’un nombre : il faut parcourir les bits de ce nombre à
partir du poids faible et garder tous les bits avant le premier 1 et inverser les autres bits qui
viennent après.
Dans cette représentation, le bit du poids fort nous indique le signe (0 : positif, 1 : négatif).
Le complément à deux du complément à deux d’un nombre est égal au nombre lui-
UNIVERSITE MOULOUD MAMMERI DE TIZI-OUZOU
même :
CA2(CA2(N))= N
Exemple :
Quelle est la valeur décimale représentée par la valeur 101010 en complément à deux sur 6
bits ?
-4 ≤ N ≤ +3
- 4 ≤ N ≤ + (4 -1 )
- 22 ≤ N ≤ +(22-1 )
-2 (3 -1) ≤ N ≤ (2 (3 -1) -1)
Si on travaille sur n bits, l’intervalle des valeurs qu’on peut représenter en
CA2 : -(2 (n -1)) ≤ N ≤ +(2 (n -1) -1 )
10 | P a g e
M. OUNNACI
CHAPITRE 2 : REPRESENTATION DE L’INFORMATION DANS LA MACHINE²
LA VIRGULE FIXE
Un nombre en virgule fixe est une valeur munie ou non d’un signe enregistré comme un entier
binaire (DCB). Un tel nombre est dit en virgule fixe car le soin de placer la virgule, revient au
programmeur. C’est à dire que la virgule n’apparaît pas dans le stockage du nombre, mais
sera placé par le programmeur qui utilise ce nombre, décomposant ainsi la valeur lue en une
UNIVERSITE MOULOUD MAMMERI DE TIZI-OUZOU
Dans cette représentation la partie entière est représentée sur n bits et la partie fractionnelle
sur p bits, en plus un bit est utilisé pour le signe.
Exemple :
15,6 = 0,156 * 10+2=0,0156 * 10+3=0,00156 * 10+7
-(110,101)2 = - (0,110101)2 * 2+3=- (0,0110101)2 * 2+4…….
(0,00101)2= (0,101)2 * 2-2
On peut noter qu’à priori, une représentation en virgule flottante n’est pas nécessairement
unique. Il nous faut donc les représenter sous une forme normalisé afin que la représentation
ne varie pas d’un matériel à l’autre. Une mantisse normalisée en virgule flottante, est un
nombre dans lequel le premier chiffre après la virgule est différent de 0, alors que le premier
chiffre avant la virgule est égal à 0. On peut trouver en fonction des organismes de
normalisation ou des constructeurs plusieurs normes de représentation de nombres en virgule
flottante.
• Cette représentation sur n bits :
– La mantisse est sous la forme signe/valeur absolue
• 1 bit pour le signe
• et k bits pour la valeur.
– L’exposant (positif ou négatif) est représenté sur p bits.
11 | P a g e
M. OUNNACI
CHAPITRE 2 : REPRESENTATION DE L’INFORMATION DANS LA MACHINE²
On remarque que la mantisse est sur 10 bits (1101 0000 01), et sur la machine seulement 8 bits
sont utilisés pour la mantisse. Dans ce cas on va prendre les 8 premiers bits de la mantisse la
mantisse est tronquée : on va prendre uniquement 8 bits perdre dans la précision
En complément à 2, l’intervalle des valeurs qu’on peut représenter sur p bits est :
- 2 (p -1) ≤ N ≤ 2 (p -1) -1 si on rajoute la valeur 2(p -1) à tous les termes de cette inégalité :
- 2 (p -1) + 2 (p -1) ≤ N + 2 (p -1) ≤ 2 (p -1) - 1 + 2 (p -1) ⇒ 0 ≤ N + 2 (p -1) ≤ 2p -1
12 | P a g e
M. OUNNACI
CHAPITRE 2 : REPRESENTATION DE L’INFORMATION DANS LA MACHINE²
Exemple
On veut représenter les nombres (0,015)8 et -(15,01)8 en virgule flottante sur une machine
ayant le format suivant :
- (15,01)8=(001101,000001)2= 0,1101000001 * 24
Signe mantisse : négatif (1)
Mantisse normalisée : 0,1101000001
Exposant réel = + 4
Calculer le biais : b= 24-1 = 8
Exposant Biaisé = 4 + 8 = +12 = (1100)2
13 | P a g e
M. OUNNACI
CHAPITRE 2 : REPRESENTATION DE L’INFORMATION DANS LA MACHINE²
Tableau récapitulatif
+9 0 1 0 0 1
+
+9 0 1 0 0 1 -4 1 1 1 0 0
+
+4 0 0 1 0 0 + 5 1 0 0 1 0 1
+ 13 0 1 1 0 1
Report
Le résultat est positif
(01101)2= (+13)10 Le résultat est positif
(00101)2= (+5)10
-9 1 0 1 1 1 +9 0 1 0 0 1
+ +
1 1 1 0 0 -9 1 0 1 1 1
-4
- 13 +0 1 0 0 0 0 0
1 1 0 0 1 1
Report Report
LA RETENUE ET LE DEBORDEMENT
Une limitation intrinsèque des systèmes logiques est, comme nous avons pu le mentionner, la
longueur des mots dans un code. Dans le cas des codes analytiques, cette limitation n’est
pas à écarter et doit être considérée avec prudence. Un problème important survient dans
le cas de l’addition et la soustraction lorsque le résultat ne peut être représenté selon la
longueur des mots binaires.
Supposons que nous disposions d’un code de 4 bits pour représenter les nombres en binaire
signé. Cela signifie que nous disposons des nombres allant de -8 à +7. Si le résultat de
l’opération dépasse ces limites, nous faisons face à un cas de débordement. Par exemple, si
nous additionnons +4 et +4, le résultat est +8 et n’est pas représentable en complément à 2
sur 4 bits. Il en est de même lorsque nous additionnons -4 et -5.
14 | P a g e
M. OUNNACI
CHAPITRE 2 : REPRESENTATION DE L’INFORMATION DANS LA MACHINE²
+4 0 1 0 0 +4 0 1 0 0
+ +
0 0 1 0 +6 0 1 1 0
+2
+ 6 + 10 1 0 1 0 (-6)
0 1 1 0 (+6)
Pas de retenue
Pas de retenue
Il y a dépassement
Pas de dépassement
Résultat erroné
-4 1 1 0 0
-4 1 1 0 0 +
+ -6 1 0 1 0
-2 1 1 1 0
- 10 1 0 1 1 0 (+3)
- 6 1 1 0 1 0 (-6)
Il y a retenue
Il y a retenue
Il y a dépassement
Pas de dépassement
Ignorer la retenue
Ignorer la retenue
Résultat erroné
Résultat correct
15 | P a g e
M. OUNNACI