Pour aller plus loin 
1. Les nombres négatifs 
Un nombre signé par exemple sur 8 bits, contient un bit réservé pour le signe. C’est en tout cas ainsi qu’on vous le 
présente pour plus de compréhension. Généralement c’est le bit de poids fort, le plus à gauche, qui sert pour le signe : 
à  0  le  nombre  est  positif,  à  1  il  est  négatif.  Par  exemple  ­9 (10)   devrait  être  représenté  par  10001001 (2) .  Cette 
représentation pratique pour le lecteur ne l’est cependant absolument pas pour l’ordinateur. Additionnez ­9 et 30, vous 
obtenez 21. 
En binaire, 30 équivaut à 00011110. Le binaire s’additionne comme le décimal : 1+1=10 donc retenue de 1, et ainsi de 
suite : 
00011110 (30)
+10001001 (-9)
=10100111 (-39)
Il  y  a  un  problème  !  Vous  devriez  obtenir  21  soit  00010101  !  C’est  qu’en  réalité  un  nombre  négatif  n’est  pas 
représenté comme ceci. L’ordinateur "ruse" avec les manipulations binaires. L’astuce consiste à prendre le complément 
à un de la valeur binaire en valeur absolue (­9 => 9), et de lui rajouter un (on obtient au final un complément à deux). 
Le complément à un consiste à remplacer tous les zéros (0) par des un (1) et tous les 1 par des 0. 
11111111 (complément à un)
00001001 (9)
=11110110 (tout est inversé)
+00000001 (+1)
=11110111 (équivaut à -9 représentation machine)
  Remarque : Si vous additionnez un nombre avec son complément à deux, vous obtenez 0 (plus une retenue). 
Maintenant, additionnez ce résultat à 30 : 
11110111 (équivaut à -9 représentation machine)
+00011110 (30)
=00010101 (21 - plus une retenue)
C’est  gagné  !  En  pratique  le  microprocesseur  n’effectue  pas  tous  ces  calculs  de  conversion  car  il  sait  représenter 
nativement en interne toutes ces valeurs, matériellement. 
2. La représentation des nombres réels 
S’il est simple de se représenter un nombre entier en binaire, cela semble plus complexe avec un nombre à virgule. En 
effet, le principe même du binaire veut que chaque valeur représente une puissance de 2 en fonction de sa position de 
0 à n, donc une valeur entière. En plus, les nombres réels n’ont jamais la même taille : plus ou moins de chiffres avant 
la  virgule,  plus  ou  moins  après.  Il  faut  prendre  le  problème  à  l’envers  :  ne  serait­ce  pas  plutôt  la  virgule  qui  se 
déplace ? 
Ensuite,  est­ce  possible  de  représenter  un  nombre  réel  sous  forme  de  résultat  d’une  manipulation  de  nombres 
entiers ? 
Prenez un exemple simple : 1,2. 
1,2=12x0,1=12x10 -1 =12E-1
En véritable notation scientifique, on écrit 1,2E0 soit 1,2x10 0 .
 
Voilà  qui  est  très  intéressant.  Les  nombres  12,  10  et  1  pourraient  parfaitement  être  codés  directement  en  binaire. 
Certains  ordinateurs  spécialisés,  dits  calculateurs,  fonctionnent  de  cette  manière.  Vérifiez  avec  une  valeur  plus 
importante : 182,1957: 
182,195=182195x0,001=182195x10
-3 =182195E-3
 
- 1 -
© ENI Editions - All rigths reserved - Jonifar lina
41
Précédent

- 41/220

Suivant