Vous êtes sur la page 1sur 8

Méthodes numériques (J-C Armici) version 1.

Représentation interne des données

Nombres entiers positifs


Les nombres entiers sont codés en base 2. Par convention les bits sont numérotés
de droite à gauche, de 0 à n-1.
Le bit à la position k a le poids 2k .
On peut représenter un nombre par une suite de bits bn1bn2 ...b1b0 que l'on peut écrire:
n 1

b 2
i 0
i
i

Par exemple la représentation interne du nombre 14 est 00001110, ou encore:


0x 27  0x 26  0x 25  0x 24  1x 23  1x 22  1x 21  0x 20
C'est-à-dire:
7

b 2
i 0
i
i
 23  22  21  8  4  2  14

Le bit qui se trouve à la position 0 est dit "de poids faible", alors que le bit qui se
trouve à la position n-1 est dit "de poids fort".
A l'aide de cette représentation il est possible de représenter 2n valeurs différentes.
Ces valeurs vont de 0 jusqu'à 2n  1 .

Opérations sur les nombres entiers positifs


Voici simplement un exemple d'addition de deux nombres en base 2:
26 + 117 = 143
111 retenues
00011010 (26)10
+ 01110101 (117)10
----------
10001111 (143)10

-1-
Méthodes numériques (J-C Armici) version 1.0

Voici un exemple de multiplication de deux nombres en base 2. La multiplication


s'effectue de manière analogue à celle en base 10:
27 x 6 = 162
11011 (27)10
x 110 (6)10
----------
00000
11011
+ 11011
----------
10100010 (162)10

Représentation hexadécimale
La représentation hexadécimale (base 16) des nombres en est parfois pratique.
Cette notation utilise 16 valeurs symbolisées par les caractères:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

La conversion d'un nombre sous forme binaire en nombre sous forme hexadécimale
est très simple, puisqu'il suffit de convertir chaque bloc de 4 chiffres binaires en un
chiffre hexadécimal. Ainsi:
(162)10  (10100010)2  ( A2)16
En effet:
(1010)2  (A)16 et (0010)2  (2)16

Nombres entiers signés


Alors que la représentation des nombres entiers positifs semble naturelle, il est
moins évident de représenter des nombres négatifs. Plusieurs possibilités existent:
 Utilisation d'un bit de signe uniquement
 Complément à un
 Complément à deux

-2-
Méthodes numériques (J-C Armici) version 1.0

Bit de signe
On réserve le bit de poids fort pour indiquer le signe du nombre: 0 pour positif et 1
pour négatif. Les autres bits sont utilisés pour représenter la valeur absolue du
nombre.
Par exemple, le nombre -18 s'écrit:
10010010 où le bit de poids fort indique que le nombre est négatif et les 7
autres bits (0010010) représentent la valeur 18.
Sous une forme plus générale on peut écrire la suite de bits bn1bn2 ...b1b0 comme:
n2
(1  2bn 1 ) bi 2i
i 0

A l'aide de cette représentation il est possible de représenter les nombres compris


entre 2n1  1 et 2n1  1 .
Cette représentation a l'inconvénient d'avoir deux représentations possibles pour le
zéro. En fait, on à -0 et +0.

Complément à un
Pour un nombre positif, le bit de signe est à 0 et les bits suivants correspondent à la
représentation des nombres positifs. Pour un nombre négatif, tous les bits qui suivent
le bit de signe sont complémentés, c'est-à-dire qu'un 1 devient 0 et qu'un 0 devient 1.
Par exemple, le nombre -18 s'écrit:
11101101 où le bit de signe à 1 indique que le nombre est négatif et la valeur
absolue est le complément de 1101101 c'est-à-dire 0010010, soit 18.
La suite de bits bn1bn2 ...b1b0 peut s'écrire comme:
n2
(1  2n 1 )bn 1   bi 2i
i 0

Comme pour la représentation signée, il est possible de représenter les nombres


compris entre 2n1  1 et 2n1  1 .
Dans cette représentation, on trouve également deux représentations du zéro.
Pour additionner deux nombres signés (sur n bits), on procède dans le cas de
nombres non signés. Cependant, s'il y a une retenue à la position n, on ne tient pas
compte de cette retenue et on ajoute 1 à la somme obtenue.
Exemple 1: 17+(-21)=-4
retenues
00010001 (17)10
+ 11101010 (21)10
----------
11111011 (4)10

-3-
Méthodes numériques (J-C Armici) version 1.0

Exemple 2: -17+(-21)=-38
111 111 retenues
11101110 (17)10
+ 11101010 (21)10
----------
11011000
+ 00000001
----------
11011001 (38)10

Complément à deux
Pour un nombre positif, le bit de signe est à 0 et les bits suivants correspondent à la
représentation des nombres positifs. Pour les nombres négatifs le bit de signe à 1 est
suivi de la représentation en complément à un, à laquelle on ajoute 1.
Par exemple le nombre -18 s'écrit:
11101110 où le bit de signe à 1 indique que le nombre est négatif. -18 en
complément à un s'écrit 11101101 donc, -18 en complément à deux s'écrit:

11101101 -18 en complément à un


+ 00000001
----------
11101110 -18 en complément à deux

La suite de bits bn1bn2 ...b1b0 en complément à deux peut s'écrire comme:


n2
2n 1 bn 1   bi 2i
i 0

En complément à deux il est possible de représenter des nombres compris entre


2n1 et 2n1  1 . En complément à deux tous les nombres ont une représentation
unique, en particulier le zéro.
Le complément à deux est la représentation la plus utilisée pour les nombres
négatifs. Voyons enfin comment effectuer des opérations arithmétiques simple en
complément à deux:
Pour additionner deux nombres de n bits on utilise la même méthode que pour les
nombres non signés, en tenant compte du fait que les retenues en position n sont
ignorées.
Exemple: 17+(-21)=-4
retenues
00010001 (17)10
+ 11101011 (21)10
----------
11111100 (4)10

-4-
Méthodes numériques (J-C Armici) version 1.0

Pour soustraire deux nombres, on procède de la même manière.


Exemple: -17+(-21)=-38
111 1111 retenues
11101111 (17)10
+ 11101011 (21)10
----------
11011010 (38)10

Pour résumer voici les différentes représentations des nombres entiers sur 4 bits:

Non signé Signé Compl. à 1 Compl. à 2


0000 0 0 0 0
0001 1 1 1 1
0010 2 2 2 2
0011 3 3 3 3
0100 4 4 4 4
0101 5 5 5 5
0110 6 6 6 6
0111 7 7 7 7
1000 8 0 -7 -8
1001 9 -1 -6 -7
1010 10 -2 -5 -6
1011 11 -3 -4 -5
1100 12 -4 -3 -4
1101 13 -5 -2 -3
1110 14 -6 -1 -2
1111 15 -7 0 -1

-5-
Méthodes numériques (J-C Armici) version 1.0

Nombres réels
Mathématiquement un nombre réel peut avoir une représentation ayant un nombre
de décimales non limité. Entre autres, les nombres  et e ont un développement
décimal infini et non périodique. Il est évident que de tels nombres ne peuvent pas
être représentés à l'aide d'une suite limitée de bits. En informatique, les nombres
réels ont donc une précision limitée.

Notation en virgule fixe


Dans cette notation, seul un certain nombre fixe de chiffres après la virgule est pris
en compte (les suivants sont oubliés). L'inconvénient de cette notation est qu'elle
interdit de travailler à la fois avec des nombres très grands et très petits.

Notation en virgule flottante


Dans le but de prendre en compte tous les nombres avec la même précision on
utilise généralement la notation en virgule flottante. Un nombre x s'écrira donc:
x  m  be

b est la base
m est un nombre réel appelé mantisse
e est un nombre entier appelé exposant

En notation scientifique (manuelle ou avec une machine à calculer) la base est 10.
Par exemple:
c  2.997 105  km / s 

En informatique la base utilisée est 2, de manière évidente.


La mantisse est représentée en virgule fixe sur un nombre de bits prédéfini.

Caractéristiques:
 le nombre de bits servant à représenter la mantisse indique avec quelle
précision les nombres sont représentés
 les valeurs de l'exposant spécifient l'intervalle des valeurs représentables
 comme nous l'avons vu, la représentation informatique d'un nombre réel
correspond à une approximation de celui-ci, et non à sa valeur exacte.

-6-
Méthodes numériques (J-C Armici) version 1.0

Il existe un standard qui régit la représentation en virgule flottante en simple et


double précision: le standard IEEE 754.

Simple précision:

1 8 23 bits

S Exposant Mantisse

Double précision:
1 11 52 bits

S Exposant Mantisse

Ces deux représentations sont semblables, seul le nombre de bits représentant la


mantisse et l'exposant change entre simple et double précision. Dans la suite nous
parlerons uniquement de la simple précision.

Signe
S spécifie le bit de signe (0 pour les nombres positifs, 1 pour les nombres négatifs)

Exposant
L'exposant e est représenté par la valeur non signée e + 127, non signée, sur 8 bits.
L'exposant se trouve donc dans l'intervalle -127..128.

Mantisse
Pour simplifier la description de la représentation de la mantisse nous allons
considérer uniquement le cas où l'exposant n'est pas égal à une des valeurs
extrêmes -127 ou 128. On parle de mantisse normalisée.
Elle est représentée par les bits b1b2 ...bk (avec k = 23) et vaut:
k
m  1   bi 2i
i 1

On voit donc que:


1 m  2

Voici par exemple la représentation du nombre -5.5


 le bit de signe est 1

 pour avoir une mantisse normalisée (comprise entre 1 et 2) il faut un exposant


égal à 2:

-7-
Méthodes numériques (J-C Armici) version 1.0

5,5
m  1,375
22
 l'exposant est représenté par 2 + 127 = 129 10000001

 et notre mantisse normalisée s'écrit:


1,375  1  0  21  1 22  1 23
soit 01100000000000000000000

Notre nombre -5.5 devient:

1 10000001 01100000000000000000000

Domaine de représentation des nombres réels


Cela peut sembler étrange au premier abord, mais l'ensemble des nombres réels
représentable en informatique n'est pas un intervalle, mais deux intervalles. En fait,
cela est tout à fait logique comme on peut le voir sur le schéma suivant:

valeurs représentables

valeurs trop petites


valeurs trop petites valeurs trop grandes
en valeur absolue

La plus grande valeur absolue représentable est pour un exposant de 127 et une
mantisse de 2  223 , ce qui correspond à l'intervalle:
3, 403 1038...3, 403 1038
La plus petite valeur strictement positive représentable est pour un exposant de -127
et une mantisse de 222 . L'intervalle des valeurs non représentables, car trop petites
en valeur absolue, est donc:
1045...1045

-8-

Vous aimerez peut-être aussi