Les nombres et les ordinateurs

 

Après la gestion des chaines de caractères par les ordinateurs, penchons nous sur les traitements des nombres.

Encore une fois ce qui peut dans une première approche sembler simple – après tout les ordinateurs ne sont-ils pas aussi nommés des « calculateurs » et donc devraient être naturellement à l’aise avec les nombres sous toutes leurs formes – s’avère tout de suite un brin plus complexe dès que l’on rentre dans les détails techniques du stockage et de la manipulation des nombres.

En effet, nos amis les mathématiciens ont classé les nombres en différent groupes, suivant leurs caractéristiques :

 

Les entiers

 

Il s’agit de nombres, positifs ou négatifs, sans partie décimale, pour lesquels de convention générale, on limite un périmètre à des tailles concevables à l’échelle humaine.

En clair un ordinateur pourra traiter, en utilisant un stockage de 32 bits, environ 4 milliards de valeurs, ou plus exactement de -2 à +2 milliards pour prendre en compte les nombres négatifs.

De plus, la majorité des ordinateurs actuels fonctionnant sur 64 bits, cela repousse la plage à 9 trillions de valeurs positives ou négatives (soit 2 puissance 64) ce qui couvre l’ensemble des besoins connus à jour.

Donc pas de problème pour la gestion des entiers, un stockage simple et efficace, et surtout unique pour les cas de figure, le signe positif ou négatif étant le premier bit du stockage

 

Les décimaux

 

Il s’agit de nombres qui comme leur nom l’indique comportent une partie décimale finie, le problème se complique déjà pour les ordinateurs qui ont  besoin d’anticiper le nombre de chiffres à stocker pour allouer un espace suffisant.

En clair, ils vont devoir fixer une limite à la partie décimale, et donc ne pourront pas toujours garantir l’intégralité du nombre décimal. Ainsi 3 / 50 000 000 000 est un nombre dont la partie décimale est finie, mais celle ci comporte trop de  chiffres pour un stockage conventionnel. Dès lors,  pour simplifier, les décimaux vont être stockés par les ordinateurs de façon similaire aux nombres réels que nous allons voir plus loin.

Mais d’ores et déjà, le nombre décimal peut être considéré comme potentiellement corrompu par l’ordinateur.

 

Les réels

 

Il s’agit de nombres que l’on peut décrire mais dont on ne peut pas écrire la valeur : ainsi 2/3, la racine de 2 ou même le nombre PI sont des nombres réels dont le stockage par l’ordinateur sera forcément approximatif d’un point de vue mathématique.

C’est pour décrire au plus juste ces nombres que l’informatique a inventé les « flottants ».

 

Les ordinateurs et les flottants

 

Le nom exact du format le plus courant est « nombre à virgule flottante », souvent abrégé « flottant » ou « float » en anglais.

Ils sont utilisés pour stocker tout nombre non entier sous la forme suivante, dans laquelle le nombre est décomposé en 3 parties :

Le signe : positif ou négatif,

La mantisse : la partie significative du nombre,

L’exposant : un nombre entier, positif ou négatif symbolisant une puissance de 10 qui sera appliquée à la mantisse.

Ainsi 1234,56 sera codé sous la forme 1,23456 10 puissance 3 ou 0,0123 sous la forme 1,23 10 puissance -2

Encore une fois, on voit que la capacité de précision de l’ordinateur se limite au nombre de chiffres qui composent la mantisse.

Alors les ordinateurs : rois du calcul ou rois de l’approximatif ?

Hé bien, les deux !

Ils sont aussi bien capables de traiter quelques millions de calculs à la seconde que d’affirmer sans rire que 2 divisé par 3 et ensuite multiplié par 3 n’est pas égal à 3 mais plutôt à 1.9999999999.

Il est donc impératif d’intégrer dans tout calcul traité par un ordinateur un niveau de précision attendu et cela notamment lorsque l’on compare des valeurs non entières.

 

Olivier Piochaud, Président Directeur Général d’Apsynet

 

Newsletter

Categories: Développement & Web