1.
GÉNÉRALITÉS SUR LE CALCUL NUMÉRIQUE
9. Sur la représentation des nombres en machine
9.1. Les nombres entiers
Pour les entiers positifs la représentation retemre est la représentation binaire pure et pour les
entiers négatifs la représentation binaire en complément à deux. Nous allons montrer de quelle
façon se réalisent ces représentations sur une machine travaillant sur des mots-mémoire de k
bits (bit est la contraction de binary digit signifiant chiffre binaire).
Le nombre de configurations différentes susceptibles d’être obtenues est alors 2”, on peut
donc représenter 2” nombres entiers en binaire. La plupart du temps il est convenu d’utiliser
le premier bit à gauche pour exprimer le signe du nombre et l’on adopte la valeur zéro pour
désigner un nombre positif et la valeur un pour désigner un nombre négatif.
En ce qui concerne les nombres négatifs, on préfère utiliser la représentation en complément
à deux qui permet alors d’effectuer l’addition des nombres et non la soustraction. Ajoutons que
l’on gagne un chiffre dans la représentation car il n’y a qu’une seule configuration pour zéro
alors qu’il y en aurait deux en signant les nombres négatifs : une pour les positifs et une pour
les négatifs.
Si l’on se limite au point de vue opératoire, la représentation en complément à deux consiste
à écrire le nombre en binaire pur, puis à changer le symbole zéro en symbole un et le symbole
un en symbole zéro, et enfin à ajouter un. Ainsi, de cette façon, on représente les nombres sur
l’intervalle fini (-2”-l, +2’-l ~ 1).
Exemple - On suppose que le mot-mémoire a la taille d’un octet (8 bits), donc on peut
représenter 256 configurations différentes, soit encore les nombres de -128 à +127.
On désire réaliser l’opération c = a + b avec a = 57 et b = -36. Les représentations binaires
sont les suivantes :
a
00111001
Ibl
00100100
b
11011100
C
100010101
report
On s’aperçoit alors, qu’à l’exécution, il y a un dépassement de la capacité du mot-mémoire.
La plupart des compilateurs masquent ce dépassement de capacité (report) et l’on génère des
nombres entiers modulo 2’. Cette propriété sera exploitée pour générer des nombres pseudoaléatoires (cf. chapitre 19).
9.2. Les nombres décimaux ou flottants ou réels
La représentation entière ne permet pas une large dynamique et se trouve mal adaptée à la
représentation des nombres de grande taille (grand module de l’exposant). Pour fixer les idées,
considérons un nombre de l’ordre de 101”. Il faudrait des mots-mémoire constitués de 300 à 350
bits pour le représenter en binaire pur ce qui est prohibitif dans la mesure où statistiquement
peu de nombres aussi grands sont utilisés, alors que toutes les opérations arithmétiques devront
porter sur tous les bits sans exception ; cela montre que la machine passerait le plus clair de son
temps à travailler pour rien... Tout bien considéré, même si la taille de la mémoire devait être
considérable, le problème des très petits nombres fractionnaires resterait entièrement posé.
En définitive, il s’agit de trouver un compromis acceptable entre la précision de la représentation et la taille du mot-machine, ce qui a une incidence directe sur le temps d’exécution
des opérations et la taille de la mémoire centrale. Avant d’envisager la manière de stocker un
27
Précédent

- 25/556

Suivant