Arithmetique

Disponible uniquement sur Etudier
  • Pages : 2 (423 mots )
  • Téléchargement(s) : 0
  • Publié le : 6 avril 2011
Lire le document complet
Aperçu du document
Le but de ce TD est de représenter le flottant 0.1 en simple et double précision en remarquant son développement binaire périodique.

En simple précision les nombres sont codés sur 32 bits, dont1 bit de signe, 8 bits d'exposant et 23 bits de mantisse. En double précision les nombres sont codés sur 64 bits, dont 1 bit de signe, 11 bits d'exposant et 52 bits de mantisse. Sachant ceci, lenombre que nous cherchons doit avoir une période comprise entre 12 et 26.

Tout d'abord, pour mieux comprendre, nous donnons l'exemple vu en TD : x = 0.1. Nous faisons le programme en C et utilisonsle debugger gdb, grâce à la commande  ‘gdb’ et ensuite on transforme 0.1 en binaire grâce à ‘x/tw &x’, respectivement ‘x/tg &y’. x est le nom de la variable contenant le nombre décimal 0.1 ensimple précision et y en double précision.

Session gdb pour x= 0.1

(gdb) list
1
2 #include
3
4 main ()
5 {
6
7 float x;
8 double y;
9x=0.1;
10 y=0.1;
11 }
(gdb) break 11
Breakpoint 1 at 0x8048366: file periode.c, line 11.
(gdb) run
Starting program: /GM21/users/narmas/Bureau/arith /periode
Breakpoint1, main () at periode.c:11
11 }

(gdb) print x
$3 = 0.100000001
(gdb) x /tw &x
0xbfec7c34: 00111101110011001100110011001101
(gdb) print y
$4 = 0.10000000000000001
(gdb) x /tg&y
0xbfec7c38: 001111111011100110011001100110011001100110011001100110011001

1010

Analyse des résultats:

Nous remarquons l'erreur relative sur x: 0.000000001 , respectivement sur y:0.00000000000000001 .

Simple précision

bit du signe: 0
les 8 bits de l’exposant: 01111011
les 23 bits de la mantisse: 10011001100110011001101

Double précision

bit du signe: 0
les 11bits de l’exposant: 01111111011
les 52 bits de la mantisse: 1001100110011001100110011001100110011001100110011010

La période est visible en simple et en double précision et sa longueur est 4...
tracking img