• Aucun résultat trouvé

Dénormalisation du nombre : Le bit caché passe à 0 Limite repoussée Plus de notion d'overflow ni d'underflow : attention Limite atteinte Au sujet du TD 1

N/A
N/A
Protected

Academic year: 2022

Partager "Dénormalisation du nombre : Le bit caché passe à 0 Limite repoussée Plus de notion d'overflow ni d'underflow : attention Limite atteinte Au sujet du TD 1"

Copied!
5
0
0

Texte intégral

(1)

/* limite des flottants */

int main(void) {

int i=0 ; float x=1.0;

/* pour le plus grand positif */

while(i<45) {

x=x*10.0 ; i=i+1 ;

printf("10^%d en float = %e \n",i,x) ; }

x=x/pow(10.0,10) ;

Printf("en divisant par 10^10 : = %e \n",x) ; i=0 ; x=1.0;

/* pour le plus petit positif */

while(i<47) {

x=x/10.0 ; i=i+1 ;

printf("10^-%d en float = %e \n",i,x) ; }

return 0;

10^37 en float = 1.000000e+37 10^38 en float = 1.000000e+38 10^39 en float = inf

10^40 en float = inf

10^45 en float = inf

en divisant par 10^10= inf

10^-39 en float = 1.000000e-39 10^-40 en float = 9.999946e-41 10^-41 en float = 9.999666e-42 10^-42 en float = 1.000527e-42 10^-43 en float = 9.949219e-44 10^-44 en float = 9.809089e-45 10^-45 en float = 1.401298e-45 10^-46 en float = 0.000000e+00 10^-47 en float = 0.000000e+00

Limite repoussée

Plus de notion d'overflow ni d'underflow : attention

(2)

Quand la mantisse est entièrement à 1 et l’exposant à 255 le plus grand flottant est :

(2-1+2-2+….+2-24)2(255-127)

= (1-2-24)*2128 ≈ 3,4 1038

Sans dénormaliser, le plus petit nombre est : (2-1)2(0-127) =2-128 ≈ 2,9 10-39

Quand on dénormalise le nombre, le plus petit nombre est :

2-24 *2(0-127)= 2-151 ≈ 3,5 10-46

10^36 en float = 1.000000e+36 10^37 en float = 1.000000e+37 10^38 en float = 1.000000e+38 10^39 en float = inf

10^40 en float = inf

10^45 en float = inf

en divisant par 10^10= inf

10^-39 en float = 1.000000e-39 10^-40 en float = 9.999946e-41 10^-41 en float = 9.999666e-42 10^-42 en float = 1.000527e-42 10^-43 en float = 9.949219e-44 10^-44 en float = 9.809089e-45 10^-45 en float = 1.401298e-45 10^-46 en float = 0.000000e+00 10^-47 en float = 0.000000e+00

(3)

int main(void) {

float x = 1.0 ; float eps = 1.0 ; int i ;

while(x != x+eps) {

eps = eps/2 ; }

eps=1.0 ; return 1 ; }

printf(« %d\n », max+1) ;

Réalisé sur des registres de 80 bits Sans passer par des variables

Même résultat en float et double … La mantisse est sur 64 bits

Code « mal généré » sur les machines de l'ESIL

Conclusion :

Il faut toujours être prudent !!

(4)

int main(void) {

float x = 1.0 ; float eps = 1.0 ; int i ;

while(x != x+eps) {

eps = eps/2 ; }

return 1 ; }

2-24 = 5,9605 10-8

Or la plus petite perturbation est de l'ordre de 2-24 Et 2-24 ne modifie pas 1

?????????

1.0 = 2-1 *21

Le bit de poids le plus faible est en 2-24,

multiplié par l'exposant, donc en 2-23 ! 2-64 = 5,42101 10-20

Dans le registre, la plus petite Perturbation de 1 est de l'ordre de 2-63

(5)

int main(void) {

float x = 1.0 ; float x1, eps ;

printf("donner une perturbation eps : ");

scanf("%e", &eps) ; x1=x+eps ;

if (x==x1)

printf("eps ne modifie pas 1 \n") ; else

printf("eps modifie 1 \n") ; return 1 ;

} titaniummd3:test en C mdaniel$ ./delta-quart donner une perturbation eps : 5.96e-8

eps ne modifie pas 1

titaniummd3:test en C mdaniel$ ./delta-quart donner une perturbation eps : 5.97e-8

eps modifie 1

Références

Documents relatifs

[r]

[r]

Dans les années 1960, une société pétrolière mexicaine (PEMEX) met en évidence, à la suite de forages dans la péninsule du Yucatan, près de Chicxulub, une structure

Illustrer à l'aide d'un histogramme.. (Transformation d'Abel ou sommation

× le monde continu qui est composé des ensembles équipotents à R (i.e. en bijection avec) ainsi que des objets obtenus en utilisant autant d’opérations qu’il y a de réels..

Un des principaux buts de l’étude d’une suite est l’étude de son comportement lorsque l’indice n prend de grandes valeurs1. Définition Une suite qui n’est pas convergente

Une asymptote est, grossièrement, une droite vers laquelle la courbe de la fonction f s’approche, ou autrement dit qui donne l’allure de la courbe de f quand x tend vers

Une asymptote est, grossièrement, une droite vers laquelle la courbe de la fonction f s’approche, ou autrement dit qui donne l’allure de la courbe de f quand x tend vers