Nature et utilisation des variables

Les nombres ngatifs et les rels

On a indiqu, la page prcdente, les conventions prises pour stocker des nombres entiers positifs.

Qu'en est-il des nombres ngatifs? Qu'en est-il des nombres rels (dans le sens mathmatique du terme)?

Les nombres ngatifs

Le signe "-" ne peut tre stock en tant que tel. Il faut donc, conventionnellement, le stocker sous la forme d'un objet qui existe pour la mmoire de l'ordinateur.

On a donc choisi d'indiquer le signe d'un nombre en y consacrant un bit. La valeur "1" reprsente le signe ngatif, la valeur "0" le signe positif.

Ds lors, sur 8 bits, le nombre le plus grand que l'on puisse reprsenter est +127 et le plus petit -128 puisqu'un bit (le premier) est rserv pour le signe.

0 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
127 stock dans 8 bits
-128, stock dans 8 bits (le premier bit indique le signe -)
Pour coder le nombre -255, il faudrait, au minimum:
7 bits
8 bits
9 bits

Les nombres rels

Par dfinition, il est impossible de stocker tous les nombres rels dans la mmoire d'un ordinateur: un rel peut tre constitu d'une infinit de chiffres. Mais la mmoire d'un ordinateur est limite. C'est la raison pour laquelle les ordinateurs (comme les calculettes) ne travaillent qu'avec un nombre limit de chiffres.

Petite digression mathmatique

Ici encore, une convention a d tre prise. Elle est base sur le fait que tout nombre rel A peut toujours tre exprim sous la forme:

A = xxxxx . Byyy

si B est fix, il faut donc retenir trois informations pour coder le nombre A:

Exemples:

xxxxx
yyy
si B = 10, le nombre 123,45 peut encore s'crire 1,2345 . 102 1,2345
2
si B = 2, le nombre 123,45 peut encore s'crire 1,92890625 . 26 1,92890625
6

C'est ce que les mathmaticiens appellent la base 10 ou la base 2.

Comment utiliser cela en informatique?

Imaginons de coder un rel sur 4 octets, c'est--dire 32 bits. Plus grand sera le nombre d'octets, plus long sera le rel que l'on pourra stocker.

Cette mthode permet donc de stocker des nombres de l'ordre de 10+38 ou 10-38, positifs ou ngatifs.

Heuuu, un mot d'explication, siouplat?

C'est pourtant simple: quelle est la plus grande valeur possible pour l'exposant yyyyyy?

255 127

Nous travaillons en base 2. Donc, le nombre cod sera de l'ordre de:

xxxx.10127 xxxx.2127 xxxx.127

Vrifie l'aide de ta calculette.

Pour information, sur 8 octets, on peut coder des nombres aussi grands que 10308 et aussi petits que 10-324 avec 15 16 chiffres significatifs.

Le nombre total de particules qui constituent l'univers est valu 1080, seulement.

Que retenir de tout ceci?

Il n'est pas forcment ncessaire d'tre capable de convertir des nombres entiers ou rels en reprsentations codes pour l'ordinateur.

Par contre, il est ncessaire d'avoir bien compris la raison pour laquelle un entier et un rel sont des objets trs diffrents.

Lorsqu'un programme effectue un calcul sur un rel, il devra utiliser des mthodes adaptes la reprsentation des rels dans la mmoire. De mme, les entiers ne peuvent pas tre traits comme les rels.

Quand tu distingues bien les caractristiques des types de variables entires et relles, passe la page suivante.


Dernière modification 18/08/2016 Test dans /info ...