Computación 1 Representación en Punto Flotante Contenido ● Representación en Punto Flotante ● Ejemplos en base 10 ● Punto flotante en binario ● Normalización 20/06/2016 Computación 1 - Ingeniería Forestal 2016 2 Representación de Números Reales Punto Flotante ● ● Necesidad de representar números reales y enteros con un rango de representación mayor que el que ofrece el punto fijo. Notación científica utilizada en física, química y matemática. 20/06/2016 Computación 1 - Ingeniería Forestal 2016 3 Punto Flotante n=±f ∗10 exp Se compone de tres partes: ● Signo ● Mantisa (f) ● Exponente (exp) 20/06/2016 Computación 1 - Ingeniería Forestal 2016 4 Ejemplos en base 10 ● 3.14 = 0.314 * 101 = 3.14 * 100 ● 0.000001 = 0.1 * 10-5 = 1.0 * 10-6 ● 1941 = 0.1941 * 104 = 1.941 * 103 20/06/2016 Computación 1 - Ingeniería Forestal 2016 5 Punto Flotante en binario La representación en punto flotante es la versión para computadoras de la notación científica utilizando base 2 n=±f ∗2 ● Ejemplo – ● exp n = 00011010 * 27 Solo se representa de manera física – El signo – La mantisa f – El exponente exp 20/06/2016 Computación 1 - Ingeniería Forestal 2016 6 Representación utilizando n bits s e f s es el bit de signo (0 positivo,1 negativo) ● e es el exponente exp, representado con q bits en exceso a M (M = 2q-1 ), e = exp + 2 q-1 ● f es la mantisa, representada con p bits en binario. ● 1 + p + q = n (bits) ● 20/06/2016 Computación 1 - Ingeniería Forestal 2016 7 Normalización ● Representación ambigua – Existen varias representaciones para un mismo número: 0.000001 = 0.1 * 2-5 = 1.0 * 2-6 – Usar la versión de normalización que mas restringa 20/06/2016 Computación 1 - Ingeniería Forestal 2016 8 Normalización(II) ● ● Número de punto flotante normalizado – El dígito más significativo de la mantisa es diferente de cero o lo que es equivalente, la mantisa es máxima. – El bit más significativo de la mantisa es un 1. Los números normalizados proporcionan la máxima precisión posible para los números de punto flotante. 20/06/2016 Computación 1 - Ingeniería Forestal 2016 9 Normalización(III) ● Sea el número binario n = 11010 * 20 ● Representarlo con 8 bits de mantisa ● Mantisa 00011010 ● ● No está normalizado dados los tres primeros dígitos 0 que contiene la mantisa. Para normalizarlo se lo desplaza tres posiciones hacia la derecha y se descartan así los primeros ceros para obtener 11010000. Los cambios realizados multiplicaron al número por 2 3 ● Para mantener el mismo valor debe restársele 3 al exponente 11010000 * 2-3 20/06/2016 Computación 1 - Ingeniería Forestal 2016 10 Normalización(IV) ● ● ● Todos los números normalizados tienen un 1 en el bit más significativo Se define una representación que omite este bit y solo representa la porción después de la coma. Esta representación consiste en un 1 implícito, una coma implícita y luego la mantisa exp n=±1, f ∗2 20/06/2016 Computación 1 - Ingeniería Forestal 2016 11 Ejemplo ● Representar 67 * 2-7 en punto flotante de 16 bits – – – ● ● 1 bit de signo exponente de 5 bits Mantisa de 10 bits Cálculos – Mantisa: = 6710 = 10000112 --> 1,000011 * 26 – por lo tanto 67*2-7 = 1,000011 * 2-1 Exponente: 5 bits, representación en exceso a M, – M = 25-1 = 16 – el exponente -110 --> -110 + 1610 = 1510 = 11112 20/06/2016 Computación 1 - Ingeniería Forestal 2016 12 Ejemplo(II) ● s=0 ● f = 000011 ● e = 01111 0 s 20/06/2016 01111 0000110000 e Computación 1 - Ingeniería Forestal 2016 f 13 Normalización (otra forma) ● ● Representar 67 * 2-7 en punto flotante de 16 bits – 1 bit de signo – exponente de 5 bits – Mantisa de 10 bits Cálculos – ● Mantisa: 6710 = 10000112 Exponente: 5 bits, representación en exceso a M – M = 25-1 = 16 – el exponente -710 -> -710 + 1610 = 910 = 10012 20/06/2016 Computación 1 - Ingeniería Forestal 2016 14 Normalización (otra forma)(II) s=0 s=0 f = 0001000011.0 Normalizando f = 1.000011 Se mueve la coma 6 lugares pues se divide la mantisa por 2 6 e = 01001 e = 1001 + 110 = 1111 Sumamos 6 al exponente pues se multiplica por 26 0 s 20/06/2016 01111 0000110000 e Computación 1 - Ingeniería Forestal 2016 f 15