|
CODAGE DES NOMBRES dans les ordinateurs Comment indiquer un très grand nombre (ou un très petit) à un ordinateur, par exemple ? Pour un traitement numérique, d'une manière générale. Comment réaliser des opérations avec de tels
nombres? Le seul but de cette page
est de vous donner quelques principes. Si vous devez pratiquer le codage en
virgule flottante, référez-vous à la norme prévue pour
votre application. |
|
||
Entier |
1111 1111 1111 1111
Base 2 = 65
535 Base 10 = 216 – 1. En règle générale, le plus grand nombre que l'on peut
coder avec n
bits est: 2n – 1. |
|
Codage |
|
|
Positif et négatif |
Voir Explications plus détaillées |
|
|
||
|
Exemples 300
000 = 0,3 106 0,3
est la
mantisse (ou significande) 6 est l'exposant. Avec
16 bits, codage des nombres de
- 32 768 à 32 767 La notation est dite flottante
car elle consiste à faire glisser les nombres significatifs à droite ou à
gauche de sorte que le nombre tienne dans le format. |
|
|
Le nombre
0 est représenté par tous les bits à 0. Un décalage
du nombre vers la gauche correspond à une multiplication par 2 du nombre; et
vers la droite, à une division par 2. La
normalisation consiste à décaler le nombre jusqu'à obtenir un significande compris
entre 1/2 et 1. De sorte que le premier bit est toujours égal à 1. Pas besoin
de le mémoriser. Il est implicite. |
|
|
Après calculs divers un 3 peut
se retrouver sous la forme 2,9999991. |
|
|
|
Nombre 12 en binaire flottant
|
|
Nombre –12 en binaire flottant: deux façons de
coder le négatif |
Voir Complément
à deux
|
|
En
décimal, le plus grand nombre vaut: (2128 – 2104) = 340 282 346 638 528
859 811 704 183 484 516 925 440,0 Pour compléments d'informations sur le codage voir le site IEEE
floating-point representations of real numbers |
Voir Pi / Zéro
/ infini / Grands
nombres
|
||||
Notations |
|
|
|
|
|
Formelle |
Flottant |
Classique |
|
Soit deux
nombres à ajouter |
x, y |
0,912 345 E5 0,512 345 E2 |
91
234, 5 51,
2345 |
|
et le
résultat cherché |
z
= x + y |
|
91
234, 5 + 51, 2345 91
285, 7345 |
|
Les
mantisses |
fx,
fy, fz |
fx
= 0,912 345 fy
= 0,512 345 |
|
|
Les
exposants |
Ex,
Ey, Ez |
Ex
= 5 Ey
= 2 |
|
|
Algorithme |
||||
Prendre le
plus grand des exposants Supposons Ex
|
Ez
= Ex |
Ez
= 5 |
|
|
Cadrer avec
le même exposant =>
Décaler le plus petit de |
Ex
– Ey |
Ex
– Ey = 3
|
|
|
Ajouter |
fz
= fx + fy |
fx = 0,912 345 fy = 0,000 512 345 fz = 0,912 857 345 |
|
|
Si fz
est plus grand que 1 en valeur absolue =>
décaler fz de 1 cran vers la gauche et augmenter Ez de
1 |
|
|
|
|
Soit la
somme cherchée |
z = fz Ez |
z
= 0,912 857 E5 |
91
285,7 |
|
|
||||
Notations |
|
|
|
|
|
Formelle |
Flottant |
Classique |
|
Soit deux
nombres à soustraire |
x,
y |
0,999
658 E-3 E-3 |
|
|
et le
résultat cherché |
z
= x - y |
|
0,000
999 658 0,000
994 576 0,000
005 082 |
|
Les
mantisses |
fx,
fy, fz |
fx
= 0,999 658 fy
= 0,994 576 |
|
|
Les
exposants |
Ex,
Ey, Ez |
Ex
= -3 Ey
= -3 |
|
|
Algorithme |
||||
Prendre le
plus grand des exposants Supposons Ex
|
Ez
= Ex |
Ez
= -3 |
|
|
Cadrer
avec le même exposant => Décaler
le plus petit de |
Ex
– Ey |
Ex
– Ey = 0
|
|
|
Ajouter |
fz
= fx + fy |
fx = 0,999 658 fy = 0,994 576 fz = 0,005 082 |
|
|
Si fz
est plus petit que 0,1 =>
décaler fz de n crans vers la gauche et augmenter Ez de
n |
|
fz
= 0,508 2 Ez
= -5 |
|
|
Soit la
somme cherchée |
z = fz Ez |
z
= 0,508 2 E-5 |
0,000
005 082 |
|
|
||||
Notations |
|
|
|
|
|
Formelle |
Flottant |
Classique |
|
Soit deux
nombres à multiplier |
x, y |
0,2 E4 0,4 E-2 |
2000
= 2 103 0,004
= 4 10-3 |
|
Algorithme |
||||
Multiplier
les mantisses |
fz
= fx . fy |
0,2
x 0,4 = 0, 08 |
|
|
Ajouter
les exposants |
Ez
= Ex + Ey |
4
+ (-2) = 2 |
|
|
Valeur du
produit cherché |
z = fz Ez |
0,08 E2 |
|
|
Normalisation |
|
0,8 E1 |
0,8
101 = 8 |
|
|
||||
Notations |
|
|
|
|
|
Formelle |
Flottant |
Classique |
|
Soit deux
nombres à diviser |
x,
y |
0,886
E-5 0,2
E-3 |
0,886
10-5 0,2
10-3 |
|
Algorithme |
||||
Diviser
les mantisses |
fz
= fx / fy |
0,886
/ 0,2 = 4,43 |
|
|
Soustraire
les exposants |
Ez
= Ex - Ey |
-5
- (-3) = - 2 |
|
|
Valeur du
quotient cherché |
z = fz Ez |
4,43 E-2 |
|
|
Normalisation |
|
0,443 E-1 |
4,43
10-2 |
|
|
||||
Algorithmes – Instructions |
Calculs – Opérations |
|||
Ips |
Instructions par seconde |
Ops |
Opérations par secondes. |
|
Flops |
Opérations flottantes par secondes (floating operations per second). |
|||
Mips |
Méga (Million) Instructions par
seconde |
Mops Mflops Gops Gflops |
Méga et Giga opérations flottantes ou non
par secondes. |
|
Voir Puissance
de calcul des ordinateurs / Loi de Moore
et performances actuelles des micropocesseurs
Suite |
|
Voir |
|
|
|
Cette page |
http://villemin.gerard.free.fr/Wwwgvmm/Numerati/FixeFlot.htm |