VESSECHY Peter
Les ordinateurs ne manipulent que des objets simples : des 0 et des 1.
Mémoriser, transmettre et transformer des nombres, des textes, des images ou des sons demande donc d’abord de les représenter comme des suites de 0 et de 1.
On appelle représentation (ou codification) d'un nombre la façon selon laquelle il est décrit sous forme binaire.
La représentation des nombres sur un ordinateur est indispensable pour que celui-ci puisse les stocker, les manipuler.
Toutefois le problème est qu'un nombre mathématique peut être infini (aussi grand que l'on veut), mais la représentation d'un nombre dans un ordinateur doit être faite sur un nombre de bits prédéfini. Il s'agit donc de prédéfinir un nombre de bits et la manière de les utiliser pour que ceux-ci servent le plus efficacement possible à représenter l'entité.
La mémoire des ordinateurs est constituée d’une multitude de petits circuits électroniques qui ne peuvent être, chacun, que dans deux états. Comme il fallait donner un nom à ces états, on a décidé de les appeler 0 et 1, mais on aurait pu tout aussi bien les appeler A et B ou faux et vrai. Une telle valeur, 0 ou 1, s’appelle un booléen, un chiffre binaire ou encore un bit. Un tel circuit à deux états s’appelle un circuit mémoire un bit et se décrit donc par le symbole 0 ou par le symbole 1.
Un entier naturel est un entier positif ou nul. Le nombre de bits à utiliser dépend de la fourchette des nombres que l'on désire utiliser.
Pour coder des nombres entiers naturels compris entre 0 et 255, il nous suffira de 8 bits (un octet) car 2^8=256.
D'une manière générale un codage sur n bits pourra permettre de représenter des nombres entiers naturels compris entre 0 et 2^n-1.
Pour représenter un nombre entier naturel après avoir défini le nombre de bits sur lequel on le code, il suffit de ranger chaque bit dans la cellule binaire correspondant à son poids binaire de la droite vers la gauche, puis on « remplit » les bits non utilisés par des zéros.
Pour représenter les entiers relatifs en notation binaire, on doit étendre la représentation aux nombres négatifs.
Une solution est de réserver un bit pour le signe de l’entier à représenter et d’utiliser les autres pour représenter sa valeur absolue. Ainsi, avec des mots de 16 bits, en utilisant 1 bit pour le signe et 15 bits pour la valeur absolue, on pourrait représenter les entiers relatifs de -111 1111 1111 1111 = -(215 - 1) = -32767 à 111 1111 1111 1111 = 215 - 1 = 32 767.
Cependant, cette méthode a plusieurs inconvénients, l’un d’eux étant qu’il y a deux zéros, l’un positif et l’autre négatif.
On a donc préféré une autre méthode, qui consiste à représenter un entier relatif par un entier naturel. Si on utilise des mots de 16 bits, on peut représenter les entiers relatifs compris entre -32 768 et 32 767 : on représente un entier relatif x positif ou nul comme l’entier naturel x, et un entier relatif x strictement négatif comme l’entier naturel x +216 = x + 65 536, qui est compris entre 32 768 et 65 535.
Ainsi, les entiers naturels de 0 à 32 767 servent à représenter les entiers relatifs positifs ou nuls, et les entiers naturels de 32 768 à 65 535 décrivent les entiers relatifs strictement négatifs.
L’entier relatif -1 est représenté comme l’entier naturel 65 535, c’est-à-dire par le mot 1111 1111 1111 1111.
Cette manière de représenter les entiers relatifs s’appelle la notation en complément à deux.
Avec des mots de seize bits, on écrit les entiers relatifs compris entre -215 = -32768 et 215 - 1 = 32 767.
Plus généralement, avec des mots de n bits, on écrit les entiers relatifs compris entre -2n-1 et 2n-1-1:
• Un entier relatif x positif ou nul compris entre 0 et 2n-1-1 est représenté par l’entier naturel x compris entre 0 et 2n-1-1;
• Un entier relatif x strictement négatif compris entre – 2n-1 et – 1 est représenté par l’entier naturel x+2n compris entre 2n-1 et 2n-1.
Comme la notation décimale, la notation binaire permet aussi de représenter des nombres à virgule.
En notation décimale, les chiffres à gauche de la virgule représentent des unités, des dizaines, des centaines, etc. et ceux à droite de la virgule, des dixièmes, des centièmes, des millièmes, etc.
De même, en binaire, les chiffres à droite de la virgule représentent des demis, des quarts, des huitièmes, des seizièmes, etc.
On peut ainsi représenter, par exemple, le nombre un et un quart : 1.01.
Toutefois, cette manière de faire ne permet pas de représenter des nombres très grands ou très petits comme le nombre d’Avogadro ou la constante de Planck.
On utilise donc une autre représentation similaire à la « notation scientifique » des calculatrices, sauf qu’elle est en base deux et non en base dix.
Un nombre est représenté sous la forme sm2n où s est le signe du nombre, n son exposant et m sa mantisse.
Le signe est + ou -, l’exposant est un entier relatif et la mantisse est un nombre à virgule, compris entre 1 inclus et 2 exclu.
Par exemple, quand on utilise 64 bits pour représenter un nombre à virgule, on utilise 1 bit pour le signe, 11 bits pour l’exposant et 52 bits pour la mantisse alors que pour un mot de 32 bits on utilise 1 bit pour le signe, 8 bits pour l'exposant et 23 bits pour la mantisse. Le nombre de bit définit le format et la précision du mot. Par exemple un mot de 32 bits sera un format de simple précision et un mot de 64 bits sera un format de double précision.
La précision dépends de la valeur de l'exposant, si l'on augmente la valeur de l'exposant on étend le rang de nombres couverts cependant le nombre de valeur représentable reste le même cela diminue donc la précision. La seule manière d'augmenter la précision et le rang est d'augmenter le nombre de bits utilisé.
Le signe + est représenté par 0 et le signe - par 1. L’exposant n est un entier relatif compris entre -1 022 et 1 023 ; on le représente comme l’entier naturel n + 1 023, qui est compris entre 1 et 2 046.
Les deux entiers naturels 0 et 2 047 sont réservés pour des situations exceptionnelles (+∞ , -∞ , etc.).
La mantisse m est un nombre binaire à virgule compris entre 1 inclus et 2 exclu, comprenant 52 chiffres après la virgule.
Comme cette mantisse est comprise entre 1 et 2, elle a toujours un seul chiffre avant la virgule et ce chiffre est toujours un 1 ; il est donc inutile de le représenter et on utilise les 52 bits pour représenter les 52 chiffres après la virgule.