Www.microse.cic.ipn.mx Arquitecturas de Computadoras Capitulo 2 Aritmética de Punto Flotante.

Slides:



Advertisements
Presentaciones similares
Representación de la Información dentro del Computador
Advertisements

Representación de la Información dentro del Computador
Integrantes: Moyolehuani Tatéi Temai
POTENCIACIÓN Y RADICACIÓN ESTUDIANTE: Javier Chávez Flores
Aproximaciones y errores de redondeo
Técnico en programación de Software
LA UNIDAD ARITMÉTICA Y LÓGICA
Ingeniero Anyelo Quintero
Introducción a la Informática Clase 5
EXPONENTES Y RADICALES
Sistemas de Numeración
Organización del Computador I Verano Aritmética (1 de 3) Basado en el capítulo 4 del libro de Patterson y Hennessy Verano 2004Profesora Borensztejn.
Tema 2: Los tipos de datos
Conversiones entre Sistemas Numéricos
DIVISIÓN DE POLINOMIOS 1
TEMA 10 NOTACIÓN CIENTÍFICA
SISTEMAS DE NUMERACIÓN
TEMA Nº 1 Conjuntos numéricos.
Sistemas decimal, binario, octal y hexadecimal
Sistemas de numeración
Descomposición Factorial Unidad 5
UNIVERSIDAD TECNICA DE COTOPAXI UNIDAD ACADEMICA DE CIENCIAS ADMINISTRATIVAS Y HUMANISTICAS CARRERA DE EDUCACION BASICA MATEMATICA I ING. MSC. OSCAR GUAYPATIN.
Tópicos Especiales en Computación Numérica
M. en C. José Andrés Vázquez Flores
Organización del Computador 1 Sistemas de Representación.
Radicales y sus operaciones
Unidad 4: Unidad de Ejecución
NÚMEROS REALES7 ÁMBITO CIENTÍFICO TECNOLÓGICO.
Aritmética PARA COMPUTADORAS
Los Números Racionales
POTENCIAS Y RAÍCES.
Razonamiento Cuantitativo
Aritmética del Procesador
NÚMEROS REALES.
Representación de reales y caracteres Mariano M. Moscato Organización del computador I verano 2008.
LA UNIDAD ARITMÉTICA Y LÓGICA
Números decimales 1. Representación y ordenación
Simulacion de sistemas dinamicos
Arquitectura de Computadoras I
Sistemas de numeración
Sistema Numérico Binario Prof. Carlos Rodríguez Sánchez.
NOTACIÓN CIENTÍFICA Notación científica
@ Angel Prieto BenitoApuntes de Matemáticas 3º ESO1 DECIMALES Y POTENCIAS TEMA 2.
CIFRAS SIGNIFICATIVAS
ARITMETICA.
Fundamentos de Programación

TEMA 4: USO DE EXPONENTES Y NOTACIÓN CIENTÍFICA 1 MATEMÁTICAS II POTENCIAS SUCESIVAS DE UN NÚMERO POTENCIAS SUCESIVAS DE UN NÚMERO ¡ CUIDADO CON LAS BACTERIAS.
NÚMEROS REALES.
Conversiones Sistemas decimal - binario - octal - hexadecimal
Ejercicio: π 4 Los Números Enteros …… 5 Valor Absoluto de un Número |-5 | = |+7| = | 0 | = |-15| = | 42 | = “El valor absoluto de un número,
Informática Ingeniería en Electrónica y Automática Industrial
@ Angel Prieto BenitoApuntes de Matemáticas 3º ESO1 POTENCIAS Y RADICALES U.D. 3 * 3º ESO E.Ap.
Introducción Matemática Nivelatoria
Ingeniería en Informática F UNDAMENTOS DE C OMPUTACIÓN B ACHILLERATO EN I NGENIERÍA I NFORMÁTICA L IC. C ARLOS H. G UTIÉRREZ L EÓN.
POTENCIACION ALGEBRAICA
Arquitecturas de Computadoras Capitulo 2 Aritmética de enteros.
Arquitecturas de Computadoras Aritmética Computacional
1 Arquitecturas de Computadoras Breve repaso al algebra booleana.
1 Números Índice del libro Los números reales
Circuitos Combinacionales I
Potenciación La potenciación o exponenciación es una multiplicación de varios factores iguales, al igual que la multiplicación es una suma de varios.
INTRODUCCIÓN AL ALGEBRA CONJUNTOS NUMÉRICOS. LOS NUMEROS RACIONALES ( ℚ )
1 Índice del libro Números reales 1.El conjunto de los números realesEl conjunto de los números reales 2.Representación de los números reales.
Los Números Racionales Prof. Javier Sandoval. Objetivos: Utilizar y clasificar los distintos conjuntos numéricos en sus diversas formas de expresión,
Números y Fracciones 1.Los números naturales y los enterosLos números naturales y los enteros 2.Números primosNúmeros primos 3.Máximo común divisor y mínimo.
Sistema Numérico Binario Prof. Carlos Ortiz Muñoz.
1 Los números reales Los números racionales Los números irracionales
Representación de números en binario
Transcripción de la presentación:

Arquitecturas de Computadoras Capitulo 2 Aritmética de Punto Flotante

Aritmética de Punto Flotante  Acertijos de operaciones con punto flotante Para cada una de las siguientes expresiones en C:  Discuta si es verdad para todos los valores de los argumentos  Explique por qué no es verdad ¡Asuma que ni d o f son NaN! x == (int)(float) x x == (int)(double) x f == (float)(double) f d == (float) d f == -(-f); 2/3 == 2/3.0 d < 0.0   ((d*2) < 0.0) d > f   -f > -d d * d >= 0.0 (d+f)-d == f int x = …; float f = …; double d = …;

Cita del día “95% of the folks out there are completely clueless about floating-point.” James Gosling Sun Fellow Java Inventor

Punto Flotante IEEE  Estándar IEEE 754 Establecido en 1985 como un estándar uniforme para aritmética de punto flotante  había diferentes formatos (código incompatible) Es soportado por todos los CPU’s grandes  Maneja diferentes aspectos numéricos Establece un estándar para realizar redondeo, desbordamiento y subdesbordamiento Es difícil de que a nivel hardware se realice el procesamiento más rápido

Creador del estándar IEEE Standard 754 for Binary Floating-Point Arithmetic. …/ieee754status/754story.html Prof. Kahan 1989 ACM Turing Award Winner! de punto flotante

Representación de fracciones Representación Los bits a la derecha del “punto binario” representan fracciones de potencia a la -2 Se representa el número racional de la sumatoria (arriba) bibi b i–1 b2b2 b1b1 b0b0 b –1 b –2 b –3 b–jb–j i–1 2i2i 1/2 1/4 1/8 2–j2–j

Ejemplos de fracciones  ValorRepresentación 5-3/ / /  Observaciones Se puede dividir entre 2 con corrimiento a la derecha Se puede multiplicar por 2 con corrimiento a l izquierda Números de la forma … 2, es decir menores a 1.0 se pueden representar como:  1/2 + 1/4 + 1/8 + … + 1/2 i + …  1.0  Se recomienda utilizar la notación científica 

Números representables  Limitaciones Se pueden representar números solo de la forma x/2 k Algunos números tienen una representación repetida de bits ValorRepresentación 1/ [01]… 2 1/ [0011]… 2 1/ [0011]… 2

Representación de números  Forma numérica  -1 s M 2 E El bit de signo s determina si el número es positivo o negativo La fracción o mantisa M representa el valor de una fracción en el rango [1.0, 2.0) El exponente E pondera el valor por uno o por dos.  Codificación El bit de signo s es el bit más significativo El campo exp codifica E El campo frac codifica M sexpfrac Punto Flotante

Punto flotante  Codificación El bit de signo es el bit más significativo El campo exp codifica E El campo frac codifica M  Tamaños Precisión sencilla: se utilizan 8 bits para exp y 23 bits para frac  Se tiene un total de 32 bits Doble precisión: se utilizan 11 bits para exp y 52 bits para frac  Se tiene un total de 64 bits Precisión extendida: se utilizan 15 bits para exp y 63 bits para frac  Se tiene un total de 80 bits (sólo lo utilizan CPU’s de Intel y se desperdicia 1 bit) sexpfrac Precisión

Numeros normalizados Condición  exp  000…0 y exp  111…1  El exponente se codifica como un número polarizado E = Exp – Polarización  Exp: valor sin signo que se denoa por exp  Polarización: Valor que polariza Precisión sencilla: 127 (Exp: 1…254, E: -126…127) Doble precisión: 1023 (Exp: 1…2046, E: -1022…1023) En general: Polarización = 2 e-1, donde e es el número de bits del exponente. Codificación significativa con el valor de 1 implícito  M = 1.xxx…x 2 Es mínimo cuando 000…0 (M = 1.0) Es máximo cuando 111…1 (M =  ) Se tiene un bit más significativo extra que está “libre”

Ejemplos  Valor float F = ; = = X 2 13  Significado M = frac=  Exponente E = 13 Polarización = 127 Exp = 140 = Representación de punto flotante: Hex: D B Binario: Exponente:140  : Codificación normalizada

Numeros des-normalizados Condición exp = 000…0  Valor Valor exponencial E = -Polarización+1 Valor mantiza M = 0.xxx…x 2  xxx…x: bits de frac  Casos exp = 000…0, fracción = 000…0  Representa el valor 0  Hay que notar que puede tener valores distintos +0 y -0  exp = 000…0, fracc  000…0  Número muy cercanos a 0.0  Se pierde precisión al ser un número más pequeño  “Se llega a un subdesbordamiento”

Numeros especiales Condición Exp = 111…1  Casos Exp = 111…1, frac = 000…0  Representa un valor  (infinito)  Estas operaciones causan sobreflujo  Ambos valores pueden ser números positivos y negativos  E.g. 1.0/0.0 = -1.0/0.0 = + , 1.0/-0.0 = -   Exp = 111…1, frac  000…0 Not-a-Number (NaN) Representan casos cuando valores numéricos pueden ser indeterminados por ejemplo sqrt(-1),  - 

Resumen de Codificación NaN ++  00 +Desnorm+Normalizado -Desnorm -Normalizado +0 Numeros de punto flotante

Formato pequeño  Representación de punto flotante con 8 bits El bit de signo es el bit más significativo Los siguientes 4 bits son para el exponente, con un valor de polarización de 7 Los últimos 3 bits representan la fracción  Es lo mismo que el formato general IEEE Normalizado y desnormalizado Se representan el 0, NaN e infinito sexpfrac de punto flotante

Valores des-normalizados Exp d Exp b E2 E /64 (Des-normalizado, E = 0 y Frac != 0) / / / / / / (Normalizado, E != 0 y Frac != 0) n/a (inf, NaN) (Exp = 1111, Frac != 0) relacionados al exponente sExpFrac

Rango dinámico S Exp Frac EValor /8*1/2 6 = 1/ /4*1/64= 2/512 … /8*1/64= 6/ /8*1/64= 7/ /8*1/64= 8/ /8*1/64= 9/512 … /8*1/2= 14/ /8*1/2= 15/ /8*1= /8*1= 9/ /8*1= 10/8 … /8*128= /8*128= n/ainf  Cercano a cero  El mayor desnorm.  El mas pequeño norm.  Por abajo de 1  Por arriba de 1  El mayor norm. Numeros De-normalizados Numeros Normalizados W=8 bits

Distribución de valores ( 6 bits)  Punto flotante de 6 bits, igual que el formato IEEE  e = 3 bits del exponente  f = 2 bits de la fracción  Polarización igual a 3  Hay que notar que la distribución se vuelve más densa conforme se aproxima al cero DesnormalizadoNormalizadoInfinito

(un acercamiento)  Punto flotante de 6 bits, igual que el formato IEEE  e = 3 bits del exponente  f = 2 bits de la fracción  Polarización igual a DesnormalizadoNormalizadoInfinito Distribución de valores ( 6 bits)

Números interesantes Descripción Exp(8) Fracc(23) Valor Numérico  Cero 00…00 00…  Positivo más Pequeño Desnorm. 00…00 00…01 2 – {23,52} X 2 – {126,1022} Sencillo  1.4 X 10 –45 Doble  4.9 X 10 –324  Más Grande Desnorm. 00…00 11…11 (1.0 –  ) X 2 – {126,1022} Sencillo  1.18 X 10 –38 Doble  2.2 X 10 –308  Positivo más Pequeño Norm. 00…01 00… X 2 – {126,1022} Exactamente el número mayor desnormalizado  Uno 01…11 00…  Más Grande Norm. 11…10 11…11 (2.0 –  ) X 2 {127,1023} Sencillo  3.4 X 1038 Doble  1.8 X 10308

Propiedades especiales  El cero en punto flotante es como en enteros el cero Todos los bits = 0  Puede (casi) utilizar una comparación de enteros sin signo Se debe primero comparar bits de signo Se debe considerar -0 = 0 Los NaNs son problemáticos  Será el mayor que otros valores  ¿A qué podrían llegar estas comparaciones? De otra manera O. K.  Desnormalizado vs. Normalizado  Normalizado vs. infinito

23 Redondeo Cualquier numero x de punto flotante IEEE pueden escribirse de la forma ±(b 0. b 1 b 2 b 3 …b p-1 ) 2 X 2 E Con b 0 =0 y E max > E > E min Decimos que el número real x esta en el intervalo normalizado del sistema de punto flotante si: N min ≤ x ≤ N max De lo contrario ocurre que x está fueradel intervalo normalizado La expansión binaria de x requiere de mas de p-bits para especificar exactamente el número. La precisión p de punto flotante es demasiado pequeña para representar x exactamente.

24 Redondeo Definimos x - ≤ x ≤ x + Sea x en el intervalo normalizado y escrito en la forma normalizada: x =(b 0. b 1 b 2 b 3 … b p-1 b p b p+1 ) 2 X 2 E El número mas cercano menor o igual a x es: x - =(b 0. b 1 b 2 b 3 … b p-1 ) 2 X 2 E Mientras que el número mayor a x es: x + =(b 0. b 1 b 2 b 3 … b p-1 ) 2 X 2 E +(0.000…01) Puede generar acarreos Puede necesitar ajuste de exponente

25 Redondeo Valores correctamente redondeados Redondeo hacia abajo:round(x) = x - Redondeo hacia arriba:round(x) = x + Redondeo hacia cero:round(x) = x - si x ≥ 0 ó x + si x ≤ 0 Redondeo al justo mas cercano:

Operaciones de punto flotante Vista conceptual Primero debe calcular resultados exactos Después se debe ajustar a una precisión deseada  Posiblemente se puede tener sobreflujo si el exponente es muy largo  Posiblemente redondee para ajustar en la fracción  Ejemplos de modos de redondeo (se ilustra el redondeo con el símbolo $) –a la unidad) Cero$1$1$1$2-$1 Redondeo hacía abajo (- )$1$1$1$2-$2 Redondeo hacía arriba(+ )$1$2$2$3-$2 El justo más cercano $1 $2 $2 $3 -$2 (por default) Nota: 1. Redondeo hacía abajo: los resultados del redondeo es cercano pero no es mayor que el verdadero resultado. 2. Redondeo hacía arriba: el resultado del redondeo es cercano pero no menor que el verdadero resultado

Detalle al justo más cercano  Es el método de redondeo por default Es difícil tener algún otro tipo sin que se utilice ensamblador El resto de los métodos son polarizados estáticamente con 60  La suma de todo el conjunto de números positivos será consistentemente sobre o bajo estimadas  Aplicando las otras posiciones para decimales/bits Cuando se está exactamente a la mitad del camino entre dos posibles valores  Se redondeo de manera que el dígito más significativo es justo  E.g., redondear a la centésima más cercana (menor que la mitad del camino) (mayor que la mitad del camino) (mitad del camino-redondeo arriba) (mitad del camino-redondeo arriba)

Redondeando números binarios  Números de fracciones binarias  “Justo” cuando el bit menos significativo es 0 A la mitad del camino cuando los bits de la derecha de la posición de redondeo = 100… 2 Ejemplos ValorBinarioRedondeoAcciónValor 2 3/ (<1/2-abajo) 2 2 3/ (>1/2-arriba) 2 1/4 2 7/ (1/2-arriba)3 2 5/ (1/2-abajo) 2 1/2 El bit menos significativo es 0

Repaso: convertir números  Caso sencillo: Si el denominador es un exponente 2 (e.g. 2, 4, 8, 16, etc.) entonces es fácil realizar la conversión:  Represente el valor en punto flotante = -3/ /100 2 = Normalizando  2 -1 (-1) s  (1 + fracción)  2 (127+Exp) (-1) s  ( … 0000)  2 (126) decimales a punto flotante Ejemplo 1

 Representar 1/3 en el formato de punto flotante 1/3 = … 10 = … = 1/4 + 1/16 + 1/64 + 1/256 + … = … = … 2  2 0 = … 2  2 -2 Signo: 0 Exponente = = 125 = Fracción = … Ejemplo

Otra posibilidad  1/3 = … …  2 = …  …  2 = …  …  2 = …  …  2 = …  …  2 = …  …  2 = …  1 … De manera que 1/3 10 = [01] 2 Ejemplo 2

 Convertir  10 1 a punto flotante 1. Desnormalizar: Convertir la parte entera: 23 = 16 + (7 = 4 + (3 = 2 + (1))) = Convertir la parte de la fracción: =.25 + ( = (.03125)) = Juntar las dos partes y normalizar: =  Convertir el exponente: = Ejemplo

a. 23/2 = 11.5  1 11/2 = 5.5  1 5/2 = 2.5  1 2/2 = 1  0 1/2 = 0.5  1 De manera que = b  2 =   2 =   2 = 1.25   2 = 0.5   2 = 1.0  1 De manera que = Ejemplo 3

Punto flotante a decimal  Cuál es el equivalente decimal de: s exponente fracción (-1) s  (1 + fracción)  2 (Exponente-127) (-1) 1  ( )  2 ( ) = -1  (1.111)  2 (2) = =

Suma en punto flotante  Operandos (-1) s1 M1 2 E1 (-1) s2 M2 2 E2  Hay que asumir que E1 > E2  Resultado exacto (-1) s M 2 E Signo s, mantisa M:  Resultado de signo alineado y sumar Exponente E: E1  Fijar Si M  2, recorrer M a la derecha, incrementar E Si M < 1, recorrer M a la izquierda k posiciones, decrementar E por k Sobreflujo si E está fuera de rango Redondear M para definir la precisión de frac (–1) s1 M1 (–1) s2 M2 E1–E2 + (–1) s M

Numeros de punto flotante 1. Compara los exponentes de los dos números. Realizar un corrimiento a la derecha del número más pequeño hasta que su exponente se empate con el exponente del número más grande; 2. Sumar las mantisas; 3. Normalizar la suma, ya sea que se realice corrimiento hacía la derecha y se incremente el exponente, o se realice corrimiento a la izquierda y se decrementa el exponente; if (ocurrió desbordamiento) { break arrojar una excepción; } else { 4. Redondear la mantisa a un número apropiado de bits; } if (ya se encuentra normalizada la suma) { stop algoritmo; } else { goto paso 3; } Algoritmo de la suma

Sumar más en binario utilizando el algoritmo de la suma en punto flotante. Primero hay que convertir los números a binario en una notación científica normalizada, asumiendo que se mantiene una precisión de 4 bits = 1/2 10 = 1/ =  2 -1 = =  2 0 =  = -7/16 10 = -7/ = =  2 0 =  2 -2 Ahora continuamos con el algoritmo. punto flotante Algoritmo de la suma

 Paso 1. La mantisa del número con el menor de los exponentes, i.e  2 -2 se recorre a la derecha hasta que el exponente se empate con el número más grande:  2 -2 =  2 -1  Paso 2. Se suman las mantisas de los dos números  (  2 -1 ) =  2 -1 Puede utilizarse complemento a 2 para mejor visualización!!! punto flotante Algoritmo de la suma

 Paso 3. Se normaliza la suma, verificando si hay desbordamiento o subdesbordamiento:  2 -1 =  2 -2 =  2 -3 =  2 -4 Debido a que 127  -4  -126, no existe ni desbordamiento ni subdesbordamiento. (El exponente polarizado podría ser o 123, que es un valor que se encuentra entre 1 y 254, que son los exponentes polarizados más pequeño y más grande) Punto Flotante Algoritmo de la suma

 Paso 4. Redondear de la suma:  2 -4 La suma ya se encuentra representada por 4 bits, de manera que no hay necesidad de cambiar los bits debido al redondeo La suma es entonces:  2 -4 = = = 1/ = 1/16 10 = Que es el resultado que esperábamos de ( )= Algoritmo de la suma Punto Flotante

Propiedades de la suma  Comparar con los de un grupo Abeliano ¿Es cerrado bajo la suma?Si  Pero puede crear infinitos o NaN ¿Es conmutativo?Si ¿Es asociativo?No  Debido al sobreflujo y al redondeo ¿Es 0 la identidad aditiva?Si ¿Cada elemento tiene su inverso aditivo?Casi  Excepto para infinito y NaN  Monotonicidad ¿Es a  b  a + c  b + c?Casi  Excepto para infinito y NaNs Los grupos abelianos son así llamados en honor al matemático noruego Niels Henrik Abel. Los grupos que no son conmutativos se denominan no abelianos (también no conmutativos, con menos frecuencia). Punto Flotante

Sumador de Punto Flotante Algoritmo de la suma

Multiplicación  Operandos (-1) s1 M1 2 E1  (-1) s2 M2 2 E2  Resultado exacto (-1) s M 2 E  Signo s: s1^s2  Fracción o mantisa M: M1  M2  Exponente E: E1 + E2  Ajuste Si M  2, se recorre M a la derecha, sobreflujo Si E está fuera de rango hay sobreflujo Se redondea M para ajustar la precisión de la fracción  Implementación La multiplicación de significantes ocupa la mayor área Punto Flotante

Algoritmo de la multiplicación 1. Sumar los exponentes polarizados de los dos números, restar la polarización de la suma para obtener el nuevo exponente polarizado; 2. Multiplicar las mantisas; 3. Normalizar el producto obtenido si es necesario, haciendo un corrimiento a la derecha e incrementando el exponente; if (ocurrió desbordamiento) { break arrojar una excepción; } else { 4. Redondear la mantisa a un número apropiado de bits; } if (ya se encuentra normalizado el producto) { 5. if (signo de los operandos son iguales) { signo del producto es positivo; } else { signo del producto es negativo; stop algoritmo; } else { goto paso 3; } Punto Flotante

Ejemplo de multiplicación (1/4) Multiplicar los números por = 1/2 10 = 1/ =  2 -1 = =  2 0 =  = -7/16 10 = -7/ = =  2 0 =  2 -2  Paso 1. Sumar los exponentes sin polarización: -1 + (-2) = -3 o, utilizando la representación polarizada: ( ) + ( ) – 127 = (-1 - 2) + ( – 127) = = 124 Punto Flotante

Ejemplo de multiplicación (2/4)  Paso 2. Multiplicar las mantisas:  El producto es  2 -3, pero se necesita mantener los 4 bits, de manera que el resultado es  2 -3 Punto Flotante +

Ejemplo de multiplicación (3/4)  Paso 3. Ahora se verifica que el producto este normalizado, y entonces se verifica si el exponente estará con desbordamiento o subdesbordamiento. Para este ejemplo el producto ya está normalizado y, debido a que 127  -3  -126, no existe desbordamiento o subdesbordamiento.  Paso 4. Al momento de redonder el producto no existen cambios:  2 -3 Punto Flotante

Ejemplo de multiplicación (4/4)  Paso 5. Debido a que loe signos de los operandos son diferentes, el signo del producto es negativo. Así, el producto es:  2 -3 Se convierte ahora el resultado a decimal:  2 -3 = = = -7/ = -7/32 10 = De manera que  = Punto Flotante

Propiedades de multiplicación  Comparación con anillo conmutativo ¿Es cerrado bajo la multiplicación?Si  Pero puede generar inifinito o NaN ¿Es la multiplicación conmutativa?Si ¿Es la multiplicación asociativo?No  Posiblemente se puede generar sobreflujo, y es inexacto ante el redondeo ¿Es 1 la identidad multiplicativa?Si ¿Es la multiplicación distributiva sobre la adición?No  Posiblemente se puede generar sobreflujo, y es inexacto ante el redondeo  Monotonicidad ¿Es a  b & c  0  a  c  b  c?  Excepto para infinito y NaN Punto Flotante

Lenguage C  C garantiza dos niveles floatprecisión simple doubledoble precisión  Conversiones Los cambios entre int, float y double cambia los valores numéricos Double o float a int  Trunca la parte de la fracción  Igual que el redondeo hacia cero No está definido cuando está fuera de rango  Generalmente satura a TMin o Tmax int a double  Conversión exacta, mientras que int tenga un tamaño de palabra menor o igual a 53 bits int a float  Se redondea de acuerdo al modo de redondeo Punto Flotante

Solución al acertijo int x = …; float f = …; double d = …; Hay que asumir que d o f es NaN x == (int)(float) x No: 24 bit de mantisa x == (int)(double) x Si: 53 bit mantisa f == (float)(double) f Si: se incrementa precisión d == (float) d No: se pierde precisión f == -(-f); Si: Sólo cambia el bit de signo 2/3 == 2/3.0 No: 2/3 == 0 d < 0.0 ((d*2) < 0.0) ¡Si! d > f -f > -d ¡Si! d * d >= 0.0 ¡Si! (d+f)-d == f No: No es asociativa Punto Flotante

Ariane 5 4 de junio de 1996  Explotó a los 37 segundos después de despegar  Se perdieron $500 millones DLS  ¿Por qué? Se calculó la velocidad horizontal como número de punto flotante de 64 bits. Este fue convertido a un entero de 16 bits. EL numero fue mayor que 32,767 Funcionó muy bien para el Ariane 4 Hubo un sobreflujo para el Ariane 5  Se utilizó el mismo software, pero diferente procesador Punto Flotante

Resumen  El formato IEEE de punto flotante tiene propiedades matemáticas claras Representa números de la forma M  2 E Se puede razonar acerca de operaciones independientes de la implementación  Como si se calculara con precisión perfecta y entonces se redondea No es lo mismo que la aritmética real  Se viola la asociatividad y la distributividad  Hace la vida difícil a los compiladores y las aplicaciones de programadores serios Punto Flotante