Chapitre 2 : Représentation Interne des Données
1. Introduction
On utilise la représentation binaire car elle est simple, facile à réaliser techniquement à l'aide de
bistables (système à deux états réalisés à l'aide de transistors). Enfin, les opérations arithmétiques de
base (addition, multiplication etc.) sont faciles à exprimer en base 2. Pour les informations manipulées
au niveau de l’ordinateur, on distingue les instructions et les données. Instructions : Ecrites en langage
machine, les instructions représentent les opérations que l’ordinateur est capable d’effectuer. Données
: Ce sont les opérandes sur lesquels portent les instructions ou produites par celle-ci. Une addition par
exemple s’applique à deux opérandes donnant un résultat qui est leur somme. Dans cette partie du
cours, nous nous intéressons au codage des données numériques et caractères.
Données
Entier positif Entier négatif réel caractère
2. Codage des données numériques
Avant de subir des traitements, les données vont subir une opération de codage qui permet de déduire
leur représentation interne. Ensuite, les opérations demandées sont effectuées, en arithmétique
binaire une opération de décodage (passage de la représentation interne vers la représentation
externe) est nécessaire pour les restituer vers l’extérieur. Les données numériques sont de différents
types :
- Nombre positifs : 1, 578.
- Nombres entiers positifs signée ou nul : 0, +1, +1254.
- Nombres entiers négatifs signée :-1, -1245…
- Nombres fractionnaires signée : 3.1457, -0.514
Un entier positif est présenté en machine par son équivalent binaire. Un nombre signée positif est
représenté par son équivalant Binaire sur (n-1) bits, le nième bit représente le signe du nombre qui est
0. Un nombre signée négatif est représenté par : SVA, Complément a 1, Complément a 2, Par excès.
Par la suite nous détaillons la représentation des nombres signées.
a. Entiers positifs signée
Soit une séquencée de n bits, dans cette méthode, un entier positif est représenté par son équivalant
Binaire sur (n-1) bits, le nième bit représente le signe du nombre qui est 0.
Exemple :
+(15) = 01111 sur 6 bits.
Signe positif valeur
0 01111
ZOUHEL BOUCETTA SAAD DAHLEB BLIDA 1 MATH INFO Page 1
b. Entiers négatifs signée
Un entier est représenté en mémoire en écriva nt ses bits de poids faible de la droite vers la gauche
des cases de la mémoire en complétant à gauche par des zéros s’il le faut. Les entiers négatifs peuvent
être codés avec l’une des méthodes :
- Signe et valeur absolue ;
- Complément à 1 ;
- Complément à 2.
- Par excès.
-Signe et valeur absolue (SVA)
Les nombres sont codés sur N bits de la façon suivante :
- Un bit pour représenter le signe négatif avec un 1 (dans le bit le plus à gauche).
- Le reste des bits pour représenter le nombre.
Pour N bits, on peut coder les entiers tel que : -(2n – 1 – 1) <= K <= +11² (2n – 1 - 1).
Remarque : Cette méthode a les inconvénients suivants :
- 0 à deux représentations 0000 et 1000 sur 4 bits.
- Les opérations arithmétiques sont compliquées à cause du bit de signe qui doit être traité à
part.
Exemple :
-(15) = 11111 sur 5 bits.
Nombre SVA
-15 101111
-Complément logique (complément à 1)
On calcule le complément logique en remplaçant, chaque bit à 0 par 1 et vice versa soft le bit du signe
(le premier bit le plus a gauche), il reste 1. Pour représenter un nombre négatif, on représente sa
valeur absolue en binaire puis on détermine son complément à 1. Pour N bits, on peut coder les
entiers tel que : - (2N – 1 – 1) <= K <= + (2N – 1 - 1).
Remarque : Cette méthode a l’inconvénient suivant : (0 a deux représentations 000 et 111 (N=3)).
Exemple :
sur 6 bits :
Nombre SVA Complément a1
-15 101111 110000
-Complément arithmétique (complément à 2)
ZOUHEL BOUCETTA SAAD DAHLEB BLIDA 1 MATH INFO Page 2
On appelle le complément a deux d’un nombre K, le nombre CK2 tell que : CK2= CK1 +1 ou CK1 est
le complément à 1 du nombre K. Sur N bits on peut représenter : -2N – 1 ≤ K ≤ 2N – 1 - 1.
Remarque : Cette méthode a l’avantage que le 0 à Une seule représentation.
Exemple : sur 6 bits
Nombre SVA Complément a1 Complément a 2
-15 101111 110000 1110001
D. Le code excès
La représentation excès N est utilisée pour le codage des exposants des nombres flottants. Elle permet
de ramener la comparaison d’exposants de signe contraire à des comparaisons d’entiers positifs.
L’excès N est choisi de manière à ce que la somme de l’excès et du nombre ne soit jamais négative.
Cette somme est représentée comme un nombre non signé (C = N + E avec E= 2n-1 n : le nombre de
bits pour codé le nombre sous excès).
Exemple :
Si on veut coder 50 en excès sur 8 bits :
Sur 8 bits, E = 28-1 = 128.
C = N +128, C = 50 + 128 = 178 = (10110010)2
E. Opération arithmétique sur les nombres signés
+4 -5 = -1 sur 4 bits.
Décimal SVA Ca1 Ca2
- 4 1100 1011 1011
+ 5 0101 0101 1101
+ 1 ? 10000 10001
+1 (retenu) Ignoré le retenu
résultat ?????? 0001 0001
est la plus facile a lire, on effectue l'addition on effectue une
mais le bit de signe doit du complément, y addition, y
être traite de façon compris le compris le bit de
particulière. bit de signe, avec signe, mais sans
report de report de la
la retenue ; retenue.
ZOUHEL BOUCETTA SAAD DAHLEB BLIDA 1 MATH INFO Page 3
3. Représentation des Réels
Un nombre réel est constitué de deux parties : la partie entière et la partie fractionnaire (les deux
parties sont séparées par une virgule). Le problème consiste à savoir comment indiquer a la machine
la position de la virgule. Il existe deux méthodes pour représenter les nombre réels :
- Virgule fixe : la position de la virgule est fixe
- Virgule flottante : la position de la virgule change (dynamique)
a. Représentation en virgule fixe :
Les premières machines utilisaient une représentation en virgule fixe ou chaque nombre était séparé en
deux parties contenant les chiffres avant et après la virgule. Les ordinateurs n’ont pas de virgule, on traite
les nombres fractionnaires comme des entiers avec une virgule virtuelle gérée par le programmeur. Ce
dernier doit donc connaître et faire évoluer, au cours des opérations la place de la virgule (De façon à
conserver le maximum de chiffres significatifs).
b. Représentation en virgule flottante :
Chaque nombre réel peut s’écrire de la façon suivante :
R = (-1)S * 1.M * 2E
En virgule flottante, le nombre réel est représenté sous sa forme exponentielle sur trois champs.
Signe (S) : le signe 0 : positif et 1 : négatif.
Exposant (E) : l’exposant est représenté sous forme biaisée.
Mantisse (M) : Mantisse normalisée en base 2 avec un bit cache. En effet, la virgule est placée après le
bit à 1 ayant le poids fort, par exemple : 10.10 1,010 Mn= 010.
Le processus :
- Convertir le nombre R en binaire.
- Amener la virgule après le 1 du poids le plus fort, on aura alors des nombres de la forme 1,… d’où
on ne représentera pas le 1 du poids le plus fort est on gagne un bit (hidden bit= bit caché).
- E : Exposant code avec excès 2p-1 -1 (P : est le nombre de bits pour codé l’exposant E).
Le tableau suivant résume les caractéristiques des nombres flottants au standard IEEE.
ZOUHEL BOUCETTA SAAD DAHLEB BLIDA 1 MATH INFO Page 4
Exemple :
Coder le nombre N = (35,5)10 selon la IEEE 754-32 :
1. Conversion de N en binaire : N = 100011.1
2. Forme exponentielle de N : N = 1,000111 x 25
Bit de signe S = 0
Mantisse = 00011100000000000000000
Codage de l’exposant: C = E + 127 = 5 + 127 = 132 = (10000100)2
3. Représentation globale :
En binaire (0 10000100 00011100000000000000000)
En hexadécimal (0100 0010 0000 1110 0000 0000 0000 0000)2 = (420E0000)16
5. Codage BCD (Binary Coded Decimal)
Le code BCD (binary coded decimal, qui peut se traduire par décimal codé en binaire) est un système
de numération utilisé en électronique et en informatique pour coder des nombres décimaux sur 4 bits
(en binaire).
a. L’utilité du code BCD
Le BCD est très utilisé en électronique pour le stockage ou l'affichage de valeur numérique. La
conversion étant facile, ne nécessitant pas de processeur et se rapprochant des périphériques comme
les afficheurs 7 segments. Un autre exemple est le stockage des Dates dans le BIOS d'une carte mère
en BCD, encore aujourd'hui. Egalement le format DECIMAL des champs de certaines bases de
données peut utiliser ce codage BCD.
Les valeurs non utilisées sont 1010, 1011, 1100, 1101, 1110, 1111.
b. Comment encodé avec BCD
Le code BCD (binary coded decimal/binaire codé décimal) consiste à remplacer directement les
chiffres 0, 1, 2, ..., 9 par leurs valeurs en binaire (sur 4 bits).
Exemple :
Coder 978, c'est remplacer 9 par 1001, 7 par 0111 et 8 par 1000, donc 978 se code 1001, 0111,1000 en
BCD.
Remarque :
ZOUHEL BOUCETTA SAAD DAHLEB BLIDA 1 MATH INFO Page 5
Pour convertir un nombre en BCD au décimal, on doit, d’abord, faire des regroupements de 4bits à
partir du poids faible, ensuite, remplacer chaque regroupement par la valeur décimal correspondante.
Exemple :
(100100010101)BCD = 915
6. GRAY (voir la chaine youtube : cours facile ou bien la chaine MUSTAFA AHMED)
Le code de Gray est un codage binaire, c'est-à-dire une fonction qui associe à chaque nombre une
représentation binaire. Cette méthode est différente du codage binaire naturel. La différence
principale entre les deux est le fait que le codage de Gray de deux nombres consécutifs ne diffère que
d'une position. Le tableau suivant montre partiellement le codage sur 4 bits.
Codage décimal Codage binaire naturel Codage Gray ou binaire réfléchi
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
Par exemple 5 est codé par 0111, et 6 est codé par 0101 : seul le troisième bit change. Dans le code
Gray.
Convertir le code binaire au code Gray s’agit de recopié le premier chiffre tell qu’il est, puis appliqué
le XOR entre chaque paire des chiffres du gauche à droite).
(1 1 1)2 = (1 (1 ou exclusif 1) (1 ou exclusif 1)) Gray = (1 0 0) Gray
Convertir le code Gray au code binaire s’agit de recopié le premier chiffre tell qu’il est, puis appliqué
le XOR entre le premier chiffre et le deuxième, puis appliqué le XOR entre le résultat XOR
précédent et le chiffre actuelle du gauche à droite).
(1 0 0)Gray = (1 (1 XOR 0) (1 XOR 0)) 2 = (1 1 1)2
Remarque :
-Dans Gray 0 + 0 = 0, 0 + 1 = 1, 1 + 0 = 1, 1 + 1 = 0.
ZOUHEL BOUCETTA SAAD DAHLEB BLIDA 1 MATH INFO Page 6
- Dans Gray un seul bit se change à la fois ce qui minimise le taux d’erreur dans les opérations
arithmétique par apport au binaire.
7. Codage des caractères
Les caractères englobent : les lettres alphabétiques majuscules et minuscules (A, a, B, b,..),
Les ponctuation (, . ! …), les chiffres (1…..9), les caractères spéciaux (&, $, %, ….), les symboles ( > , ;
/ : …. ) .
Le codage des caractères est une convention qui permet, à travers un codage connu de tous, de
transmettre de l’information textuelle, là où aucun support ne permet l’écriture scripturale. Cela
consiste à représenter chaque caractère, par un motif visuel, un motif sonore, ou une séquence
abstraite. Les techniques des ordinateurs reposent sur l’association d’un caractère à un nombre.
Plusieurs codes sont utilisés en informatique (codage ASCII, Unicode, UTF-32, UTF-8, ISO-8859). Parmi
les anciens codes utilisés le code ASCII (American Standard Code for Information Interchange), il
définit un jeu de 128 caractères numérotés de 0 à 127. Les caractères ASCII sont codés sur un octet,
on peut avoir 28 = 256 combinaisons, chaque combinaison représente un caractère, voir le tableau ci-
dessus.
Exemple :
Le code ascii du I est : 49, le code ascii du ? est 3F. (La valeur horizontale puis la valeur verticale).
ZOUHEL BOUCETTA SAAD DAHLEB BLIDA 1 MATH INFO Page 7
Références
-Cours arithmétique binaire sur :
[Link]
-Cours arithmétique binaire sur :
[Link]
-Cours système numération sur :
[Link]
-Cours représentation interne des données
([Link]
-Cour système numération + représentation de donnée
sur :([Link]
-Cours codage des caractères sur :
[Link]
-Cours BCD (binary coded decimal) sur:
[Link]
- Cours Gray sur:
[Link]
ZOUHEL BOUCETTA SAAD DAHLEB BLIDA 1 MATH INFO Page 8