Números de punto flotante M. en C. Erika Vilches Parte 1 Sistema de números de punto flotante • Basado en la notación científica • Capaz de representar números muy grandes y muy pequeños sin incrementar el número de bits • Capaz de representar números con componentes enteros y fraccionarios. • Número de punto flotante = número real Número de punto flotante • Consta de dos partes y un signo 1. Mantisa: La magnitud del número 2. Exponente: El número de lugares que se va a mover el punto 3. Signo: Positivo o negativo Ejemplo decimal • Número decimal 241,506,800 • Mantisa = .2415068 • Exponente = 9 0.2415068 x 10 ^ 9 • Para los números de punto flotante binarios el formato se define por el standard ANSI/ IEEE 754-1985 de tres formas: • Precisión sencilla - 32 bits • Precisión doble - 64 bits • Precisión extendida - 80 bits • Se trabaja con números normalizados. Decimos que un número binario está normalizado si el dígito a la izquierda del punto es igual a 1 Precisión Sencilla • En la mantisa se entiende que el punto binario está a la izquierda de los 23 bits. De hecho hay 24 bits porque en cualquier número binario el bit mas significativo siempre es 1. Por lo tanto se entiende que esta ahí aunque no ocupe una posición. • Los 8 bits de exponente representan un exponente en exceso, que se obtiene añadiendo 127 al exponente real. El propósito es permitir números muy grandes o muy pequeños sin requerir un bit de signo aparte para el exponente. Esto permite un rango de exponentes de -126 a +128 Ejemplo Representar 1011010010001 1011010010001 = 1.011010010001 x 2^12 Asumiendo que es un número positivo: Bit de signo = 0 Exponente: 12 + 127 = 139 = 10001011 Mantisa: Parte fraccionaria .011010010001 a 23 bits (el 1 a la izq. del punto se omite porque siempre está presente) Punto flotante a decimal Utilizar la fórmula → para obtener el valor en binario verdadero Ejemplo: El bit de signo es 1. El exponente en exceso es 10010001 = 145. Aplicando la fórmula obtenemos: → - 407,680 • Un número de punto flotante de 32 bits puede reemplazar a un entero binario de 129 bits • Excepciones: 1. El número 0.0 se representa con todos 0’s 2. El infinito se representa con todos 1’s en el exponente y todos 0’s en la mantisa. Ejemplo Convertir el número decimal 3.248 x 10 ^ 4 a un número binario de punto flotante precisión sencilla. Convertir de decimal a binario 3.248 x 10 ^ 4 = 32480 = 111111011100000 = 1.11111011100000 x 2 ^ 14 Mantisa (23 bits) = 11111011100000000000000 Exponente en exceso = 14 + 127 = 141 = 10001101 Resultado → Ejercicio • Determine el valor binario y decimal del siguiente número binario en punto flotante: 0 10011000 10000100010100110000000 • Mencione las partes de un número binario en punto flotante • ¿Cuántos bits tiene en total un número binario en punto flotante de precisión sencilla, doble y extendida?