Représentation d'un nombre dans un ordinateur |
On appelle représentation (ou codification) d'un nombre la façon de 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 fait 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é. Ainsi il serait idiot de coder un caractère sur 16 bits (65536 possibilités) alors qu'on en utilise généralement moins de 256...
Représentation d'un entier naturel |
Un entier naturel est un entier positif ou nul. Le choix à faire (c'est-à-dire 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 20=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 2n-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.
Représentation d'un entier relatif |
Un entier relatif est un entier pouvant être négatif. Il faut donc coder le nombre de telle façon que l'on puisse savoir s'il s'agit d'un nombre positid ou d'un nombre négatif, et il faut de plus que les règles d'addition soient conserver. L'astuce consiste à utiliser un codage que l'on appelle complément à deux.
Représentation d'un nombre réel |
Il s'agit d'aller représenter un nombre binaire à virgule (par exemple 101,01
qui ne se lit pas cent un virgule zéro un puisque c'est un nombre binaire mais 5,25 en décimale)
sous la forme 1,XXXXX... * 2n (c'est-à-dire dans notre exemple 1,0101*22).
La norme IEEE définit la façon de coder un nombre réel.
Cette norme se propose de coder le nombre sur 32 bits et définit trois composantes:
Certaines conditions sont toutefois à respecter pour les exposants:
Voyons voir ce codage sur un exemple:
Soit à coder la valeur 525,5