Chapitre 1.
Formats Numériques
Représentation des nombres dans les ordinateurs
(Entiers positifs, entiers signés, nombres réels)
1. Système binaire
Dans un système binaire, un nombre s’écrire à l’aide de la somme des puissances de 2.
Exemple
Dans un format à 4 bits le nombre b3b2b1b0(en base 2) s’écrit :
b3b2b1b0 = (b3x23) + (b2x22) + (b1x21) +(b0x20), les ai sont appelés bits ou élément binaires (0 ou 1)
Pour convertir un nombre décimal en binaire on doit le décomposer en une somme de puissances de 2. Pour
cela on peut utiliser la méthode des divisions successives.
2. Système Hexadécimal
Un nombre ou un mot écrit en binaire est difficile à manipuler (souvent trop long). On a alors inventé un autre
système de numérotation qui peut être utilisé par les ordinateurs mais plus facile à manipuler. C’est ainsi
qu’on a créé le système Hexadécimal qui consiste à regrouper les éléments binaires par groupe de 4 bits.
Par exemple le nombre binaire (1111 1001 0111 1100)2 ; s’écrit F97C en base hexadécimale.
Le système hexadécimal comporte 16 symboles : (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F). La lettre A vaut
10, la lettre B vaut 11 et ainsi de suite. Ainsi, le nombre (F97C)H vaut en décimal :
(F97C)H = 15× 16 3 + 9 × 162 + 7× 161 + 12× 160 = (63868) Décimal
Pour convertir un nombre décimal en hexadécimal on peut utiliser le même principe des divisions successives
Exemple
Chapitre 1. Formats numériques Département d’Electronique, L3 TLC
Prof. A. Farrouki
3. Circuits élémentaires de mémorisation
Dans les ordinateurs, les éléments qui permettent de stocker et de mémoriser les nombres binaires sont les
n registre à n bits est constitué de n bascules D. La bascule D est un
registres et les circuits mémoires. Un
circuit électronique à 2 états (0 ou 1) qui constitue l’unité élémentaire de mémorisation de l’information sous
forme binaire. La bascule D est un circuit synchrone qui change d’état au rythme d’un signal d’horloge.
Horloge Sortie Le fonctionnement de la bascule D (Latch) peut être résumé de
H Q
la façon suivante: Sortie Q Entrée D,, au front montant de H
Entrée D Q
Par conséquent la bascule constitue le circuit de base qui permet de mémoriser un bit d’information
d’information.
Un circuit mémoire est constitué de plusieurs centaines de milliers de « cases mémoire » organisées
linéairement à la manière d’un
un tableau. Une
U case mémoire (Location mémoire) fonctionne comme un registre.
exécute un programme peut effectuer une opération d’écriture ou
Le processeur, ou tout autre automate,, qui exé
de lecture dans une case mémoire ou dans un registre. Pour écrire ou lire une donnée dans une case
mémoire, le processeur doit exécuter les tâches suivantes :
• La sélectionner en indiquant son Adresse via le bus d’adresses (Numéro qui permet de localiser la case
considérée au niveau du circuit mémoire)
• Lui envoyer un signal d’écriture/Lecture
/Lecture pour la mettre en mode « Write ou Read » , suivi de la donnée
via le bus de données. Habituellement ce signal est référencé par R / W (Read/ Write barre)
Chapitre 1. Formats numériques Département d’Electronique, L3 TLC
L’organisation des données dans un circuit mémoire dépend de la taille de la mémoire et du format de
données utilisé. A titre d’exemple, un circuit mémoire de 4 kilo Octets (KO) est composé de 4096 cases
mémoire, contenant chacune des données codées sur 8 bits. Les cases mémoires sont numérotées de 0 à
4095 ; ce numéro constitue le système d’adressage du circuit mémoire. En Hexadécimal, 4095 vaut (FFF)H ,
soit (1111 1111 1111)2 . Cela veut dire aussi que pour coder les adresses permettant l’accès à la mémoire,
le bus d’adresse doit avoir un format de 12 bits. On dira pour cette mémoire que la donnée est codée sur 8
bits (D7, D6, … D0) et l’adresse sur 12 bits (A11, A10 ... A0)
Contenu de la Mem (Data)
Adresse Bin Adresse Hex b7 …… b2 b1 b0
Bus d’adresses
0000 0000 0000 (000)H 1 … 0 0 1
A11 A10 … A1 A0
0000 0000 0001 (001)H 0 … 1 0 1
0000 0000 0010 (002)H 1 … 1 1 1
. . . ….
. . Bus de données
. . D7 D6 … D1 D0
1111 1111 1101 (FFD)H 0 … 0 0 1
1111 1111 1110 (FFE)H 1 … 0 0 0
Chip select
1111 1111 1111 (FFF)H 0 … 0 1 1
R/W
4. Arithmétique signée et non signée
• Entiers non signés (Positifs ou nuls)
Pour représenter les nombres entiers positifs, il suffit de les coder en binaire naturel. Prenons
l’exemple d’un format à n=4bits. Avec n=4 bits, on peut représenter M=16 nombres entiers positifs :
Nombre Hexa Nombre
Décimal binaire
0 0 0000
1 1 0001
2 2 0010
3 3 0011
4 4 0100
5 5 0101
6 6 0110
7 7 0111
8 8 1000
9 9 1001
10 A 1010
11 B 1011
12 C 1100
13 D 1101
14 E 1110
15 F 1111
Chapitre 1. Formats numériques Département d’Electronique, L3 TLC
Prof. A. Farrouki
Les opérations arithmétiques qu’on peut effectuer sur ces nombres sont l’addition, la soustraction, la
multiplication et la division entière non signées. Toutes ces opérations ne tiennent pas compte du signe, ainsi
tous les bits du format sont utilisés pour représenter uniquement la valeur absolue. Cependant, ces
opérations ont besoin d’indicateurs pour signaler certaines situations tel que le dépassement de capacité
indiqué par le bit de retenue (Carry flag).
Exemple : Dans un format de 4 bits, on effectue l’opération suivante :
Carry 1 1 1 1
Carry Out (1 0 0 1)
1 + (0 1 1 1)
------------------
= (0 0 0 0)
En effectuant l’addition binaire bit à bit, on remarque que la retenue se propage d’un bit à l’autre. Le
carry out (ou simplement carry) est la dernière retenue qui passe du 4eme bit vers la sortie du registre. Dans
cet exemple, on voit bien que le résultat final est nul (0000) car il ya un dépassement de capacité sur un
format de 4 bits. Ce dépassement est signalé par l’indicateur Carry qui se positionne à 1. En fait, le bit carry
indique que le résultat de l’addition effectuée ne tient pas sur 4 bits. Il en faut 5, mais le registre n’en compte
que 4 !
Dans le monde des microprocesseurs, les indicateurs (Carry, Signe, Parité …) sont appelés Flags ou
indicateurs d’état.
• Entiers signés (Positifs et négatifs)
Le format en binaire complément à 2 (C2) est utilisé pour coder les entiers signés (+ , -) tout en respectant les
règles fondamentales de l’arithmétique signée. Dans une représentation à n bits (bn-1,…. b1, b0), on procède
de la façon suivante :
• Le bit de poids fort (bn-1) est réservé pour le signe ( + : 0 ; - : 1)
• Les nombres positifs ou nuls sont codés en binaire naturel
• Pour les nombres négatifs, la valeur absolue est codée en complément à 2 en utilisant les
(n-1) bits restants. C'est-à-dire qu’on inverse les (n-1) bits puis on rajoute au résultat la
valeur « 1 ». --------------- C2(x) = C1(x) + 00 … 01
En procédant ainsi, les règles de l’arithmétique sont respectées, en particulier : Si on effectue l’addition
binaire (bit à bit) ; X + C2(X) = 0, en réalité, C2(X) = -X et C2(-X) = X .
Pour ce codage, les nombres varient dans l’intervalle [ -2n-1 , 2 2n-1 – 1] pour un format à n bits.
Chapitre 1. Formats numériques Département d’Electronique, L3 TLC
Prof. A. Farrouki
Exemple
Si on travaille sur un format de 4 bits, les nombres positifs ou nuls sont représentés par le binaire naturel, les
nombres négatifs sont calculés par le complément à 2 de leurs opposés;
Regardons ce cas : +5 = 0101 , donc (-5) = C2(+5) = C1(+5) + 0001 = 1010 + 0001 = 1011
X>=0 code bin X>=0 code bin
0 0000 -1 1111
+1 0001 -2 1110 Remarques
+2 0010 -3 1101 Il s’agit d’un intervalle non symétrique (-8,+7)
. . . . Le C2 de zéro donne zéro (+0 et -0)
-8 est le seul nombre qui n’a pas d’opposé (pas de C2)
. . . .
∀ ∈ [−8, +7], l’addition binaire: x + C2(x)=0
. . -7 1001
+7 0111 -8 1000
Il ya cependant des ambigüités qui sont dues à la capacité du format. Supposons que nous voulons
effectuer l’addition binaire (-4) + (-5) sur un format de 4 bits ;
Carry in 1 0 0 0
Carry Out ( 1 1 0 0 ) (-4)
1 + ( 1 0 1 1 ) (-5)
------------------
= (0 1 1 1) --------------------- Ov=1
b3: bit signe
Remarquer l’ambigüité, elle saute aux yeux !!!!!! En regardant le bit de signe (b3), on remarque que la
somme de 2 nombres négatifs donne un nombre positif !!!!!! Cette ambigüité est signalée par le bit
Overflow(Ov) . Le flag Ov se positionne à « 1 » pour signaler cette ambigüité, en d’autres termes le format
4 bits n’est pas suffisant pour représenter cette addition signée: il ya un dépassement de capacité sur 4 bits.
5. Nombres réels
• Nombres fractionnaires en virgule fixe
Chapitre 1. Formats numériques Département d’Electronique, L3 TLC
Prof. A. Farrouki
La virgule fixe permet de représenter les nombres réels (positifs et négatifs) à l’aide d’un
format fixe à faible précision. Le format renferme un bit de signe, une partie entière et une
partie fractionnaire de taille fixe (nombre de bits fixe). Ce format utilise le complément à 2
pour prendre en charge le signe du nombre. La taille de la partie fractionnaire (en nombre de
bits) définie la précision du format appelé également pas de quantification. La taille de la
partie entière définie le domaine de variation du nombre
-n
Précision de codage q=2 (le pas de quantification)
Exemple
A l’aide d’une représentation sur 8 bits, on définie le format virgule fixe suivant :
1 bit de signe
4 bits pour la partie entière
3 bits pour la partie fractionnaire
Trouver le code des nombres +5,75 et – 5,75 dans cette représentation en virgule fixe ?
• Nombres réels en virgule flottante
Ce format permet de représenter les nombres réels avec une très grande précision dans un domaine de
variation très important. C’est ce qui est utilisé dans les langages évolués pour réaliser des calculs
mathématiques précis ; ce sont les formats réels simple et double précision qu’on manipule avec des
langages tels que C, Pascal, Fortran, Matlab..
L’exposant de la donnée est codé au sein du même format ce qui permet d’avoir une position flottante de la
virgule. Ce format est composé de 4 champs :
Le bit de signe de l’exposant SE
Exposant codé en C2
Le bit signe de la mantisse SM
Mantisse codée en C2 . La valeur absolue de la mantisse comprise entre 0,5 et 1 (Mantisse
normalisée)
Chapitre 1. Formats numériques Département d’Electronique, L3 TLC
Prof. A. Farrouki
( ) ( )
Dans ce format, un nombre réel x s’écrit : = (− ) ( ) ;
M est la mantisse codée en C2, u est l’exposant codé en C2.
A titre d’exemple, le format simple précision utilisé pour coder les nombres réels par les langages évolués est
normalisé dans le format standard IEEE 754. Il est caractérisé par :
1 bit de signe de la mantisse
23 bits pour représenter en C2 la partie fractionnaire de la valeur absolue de la mantisse normalisée
entre 0,5 et 1
8 bits pour représenter l’exposant signé en excédent à 127
Ce format permet d’atteindre les limites suivantes :
31 31
- pour les grands nombres ; de (-2*10 ) à (+2*10 )
- pour la précision ; (1,4 .10-45)
6. Exercices d’application
Exercice 1
a) Donner les différentes représentations binaires d’un entier codé sur 4 bits : Binaire naturel, complément à 1 et
complément à 2
b) Etablir la relation de passage du binaire naturel vers le complément à 2.
c) Donner l’intervalle de variation pour chaque représentation (généraliser pour un codage à N bits)
Exercice 2
a) Convertir en Hexadécimal les nombres décimaux suivants : 2967 ; 49374 ; 61234
b) Convertir en décimal les nombres hexadécimaux suivants: 0400H ; 7FFH ; CA30H ;
Exercice 3
a) Effectuer les additions suivantes en logique signée sur 8 bits puis donner l’état de l’indicateur de
dépassement de capacité (Overflow) pour chacune d’elles.
Chapitre 1. Formats numériques Département d’Electronique, L3 TLC
Prof. A. Farrouki
(+90) + (+50)
(+90) + (-50)
(-90) + (+50)
(-90) + (-50)
b) En déduire l’expression logique du bit Overflow (indicateur de dépassement de capacité)
Exercice 4
a) Donner les équations logiques et le circuit de l’additionneur binaire complet (full-Adder)
b) Proposer un circuit à structure parallèle pour l’addition et la soustraction de 2 nombres entiers au
format C2 sur 8 bits.
Chapitre 1. Formats numériques Département d’Electronique, L3 TLC
Prof. A. Farrouki