www.amal-yemen.com
 
  . .
 
 


 
Rechercher
»  (Collection Noire) Eyrolles ( )
11, 2014 8:17 am  elhanche

»  (maintenance informatique par la pratique)
16, 2014 5:20 am  medicokhaled

» 
10, 2014 1:30 pm  faisal ali

» 
10, 2014 1:29 pm  faisal ali

»  cisco
25, 2013 3:27 am  LESOLITAIRE

» tu te sens comment
29, 2013 11:33 am  

» 
09, 2013 4:09 pm  adnant

» 
09, 2013 4:05 pm  adnant

» 
20, 2013 1:02 am  Sandman2

الإبحار
 
 
 
 
  . .
 

 | 
 

 Reprsentation des nombres entiers et rels

         





: Reprsentation des nombres entiers et rels    01, 2008 3:27 am

Reprsentation d'un nombre dans un ordinateur
On appelle reprsentation (ou codification) d'un nombre la faon selon laquelle il est dcrit sous forme binaire. La reprsentation des nombres sur un ordinateur est indispensable pour que celui-ci puisse les stocker, les manipuler. Toutefois le problme est qu'un nombre mathmatique peut tre infini (aussi grand que l'on veut), mais la reprsentation d'un nombre dans un ordinateur doit tre faite sur un nombre de bits prdfini. Il s'agit donc de prdfinir un nombre de bits et la manire de les utiliser pour que ceux-ci servent le plus efficacement possible reprsenter l'entit. Ainsi il serait idiot de coder un caractre sur 16 bits (65536 possibilits) alors qu'on en utilise gnralement moins de 256...

Reprsentation d'un entier naturel
Un entier naturel est un entier positif ou nul. Le choix faire (c'est--dire le nombre de bits utiliser) dpend de la fourchette des nombres que l'on dsire utiliser. Pour coder des nombres entiers naturels compris entre 0 et 255, il nous suffira de 8 bits (un octet) car 28=256. D'une manire gnrale un codage sur n bits pourra permettre de reprsenter des nombres entiers naturels compris entre 0 et 2n-1.

Pour reprsenter un nombre entier naturel aprs avoir dfini 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 utiliss par des zros.

Reprsentation d'un entier relatif
Un entier relatif est un entier pouvant tre ngatif. Il faut donc coder le nombre de telle faon que l'on puisse savoir s'il s'agit d'un nombre positif ou d'un nombre ngatif, et il faut de plus que les rgles d'addition soient conserves. L'astuce consiste utiliser un codage que l'on appelle complment deux.

un entier relatif positif ou nul sera reprsent en binaire (base 2) comme un entier naturel, la seule diffrence que le bit de poids fort (le bit situ l'extrme gauche) reprsente le signe. Il faut donc s'assurer pour un entier positif ou nul qu'il est zro (0 correspond un signe positif, 1 un signe ngatif). Ainsi si on code un entier naturel sur 4 bits, le nombre le plus grand sera 0111 (c'est--dire 7 en base dcimale).
D'une manire gnrale le plus grand entier relatif positif cod sur n bits sera 2n-1-1.
un entier relatif ngatif grce au codage en complment deux.
Principe du complment deux :
Soit reprsenter un nombre ngatif.
Prenons son oppos (son quivalent en positif)
On le reprsente en base 2 sur n-1 bits
On complmente chaque bit (on inverse, c'est--dire que l'on remplace les zros par des 1 et vice-versa)
On ajoute 1
On remarquera qu'en ajoutant le nombre et son complment deux on obtient 0...
Voyons maintenant cela sur un exemple :
On dsire coder la valeur -5 sur 8 bits. Il suffit :
d'crire 5 en binaire : 00000101
de complmenter 1 : 11111010
d'ajouter 1 : 11111011
la reprsentation binaire de -5 sur 8 bits est 11111011
Remarques:
Le bit de poids fort est 1, on a donc bien un nombre ngatif.
Si on ajoute 5 et -5 (00000101 et 11111011) on obtient 0 (avec une retenue de 1...).
Reprsentation d'un nombre rel
Il s'agit d'aller reprsenter un nombre binaire virgule (par exemple 101,01 qui ne se lit pas cent un virgule zro un puisque c'est un nombre binaire mais 5,25 en dcimale) sous la forme 1,XXXXX... * 2n (c'est--dire dans notre exemple 1,0101*22). La norme IEEE dfinit la faon de coder un nombre rel.
Cette norme se propose de coder le nombre sur 32 bits et dfinit trois composantes :

le signe est reprsent par un seul bit, le bit de poids fort (celui le plus gauche)
l'exposant est cod sur les 8 bits conscutifs au signe
la mantisse (les bits situs aprs la virgule) sur les 23 bits restants
Ainsi le codage se fait sous la forme suivante :
seeeeeeeemmmmmmmmmmmmmmmmmmmmmmm
le s reprsente le bit relatif au signe
les e reprsentent les bits relatifs l'exposant
les m reprsentent les bits relatifs la mantisse
Certaines conditions sont toutefois respecter pour les exposants :

l'exposant 00000000 est interdit
l'exposant 11111111 est interdit. On s'en sert toutefois pour signaler des erreurs, on appelle alors cette configuration du nombre NaN, ce qui signifie Not a number
Il faut rajouter 127 (01111111) l'exposant pour une conversion de dcimal vers un nombre rel binaire. Les exposants peuvent ainsi aller de -254 255
La formule d'expression des nombres rels est ainsi la suivante:

(-1)^S * 2^( E - 127 ) * ( 1 + F )o:

S est le bit de signe et l'on comprend alors pourquoi 0 est positif ( -1^0=1 ).
E est l'exposant auxquel on doit bien ajouter 127 pour obtenier son quivalent cod.
F est la partie fractionnaire, la seule que l'on exprime et qui est ajoute 1 pour effectuer le calcul.
Voyons ce codage sur un exemple :
Soit coder la valeur 525,5.

525,5 est positif donc le 1er bit sera 0.
Sa reprsentation en base 2 est la suivante : 1000001101,1
En normalisant, on trouve : 1,0000011011*2^9
On ajoute 127 l'exposant qui vaut 9 ce qui donne 136, soit en base 2 : 10001000
La mantisse est compose de la partie dcimale de 525,5 en base 2 normalise, c'est--dire 0000011011.
Comme la mantisse doit occuper 23 bits, il est ncessaire d'ajouter des zros pour la complter :
00000110110000000000000
La reprsentation du nombre 525,5 en binaire avec la norme IEEE est donc :
0 1000 1000 00000110110000000000000
0100 0100 0000 0011 0110 0000 0000 0000 (4403600 en hexadcimal)
Voici un autre exemple avec un rel ngatif :
Soit coder la valeur -0,625.

Le bit s vaut 1 car 0,625 est ngatif
0,625 s'crit en base 2 de la faon suivante : 0,101
On souhaite l'crire sous la forme 1.01 x 2-1
Par consquent l'exposant vaut 1111110 car 127 - 1 = 126 (soit 1111110 en binaire)
la mantisse est 01000000000000000000000 (seuls les chiffres aprs la virgule sont reprsents, le nombre entier tant toujours gal 1)
La reprsentation du nombre 0,625 en binaire avec la norme IEEE est :
1 1111 1110 01000000000000000000000
1111 1111 0010 0000 0000 0000 0000 0000 (FF 20 00 00 en hexadcimal)


Ce document intitul Reprsentation des nombres entiers et rels issu de Comment Ça Marche (www.commentcamarche.net) est mis disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixes par la licence, tant que cette note apparat clairement.
    
 
Reprsentation des nombres entiers et rels
          
1 1

:
 ::   ::  -