El documento describe diferentes métodos para representar números enteros y reales en sistemas binarios, incluyendo complemento a 2, signo y módulo, y exceso Z para enteros, y punto flotante según el estándar IEEE-754 para reales. Explica cómo se representan los campos de signo, exponente y mantisa, y los rangos de valores que pueden almacenarse para precisión simple y doble.
13. • Cualquier número N puede representarse de la forma N= M * B E N = Número a representar M= Mantisa B= Base del sistema E= Exponente Por ejemplo: N= 5437,8932 = 5,4378932 * 2 3 Esta normalización viene estipulada por el IEEE ( Institute of Electric and Electronic Engineers), una asociación técnico-profesional mundial dedicada a la estandarización, entre otras cosas. Es la mayor asociación internacional sin fines de lucro formada por profesionales de las nuevas tecnologías, como ingenieros eléctricos, ingenieros en electrónica, científicos de la computación…..
14. Su creación se remonta al año 1884, contando entre sus fundadores a personalidades de la talla de Thomas Alva Edison, Alexander Graham Bell…… Hoy en día está formada por mas de 360000 voluntarios de unos 175 países y su trabajo es promover la creatividad, el desarrollo y la integración, compartir y aplicar los avances en las tecnologías de la información, electrónica y ciencias en general para beneficio de la humanidad y de los mismos profesionales. Muchas aplicaciones requieren trabajar con números que no son enteros. Existen varias formas de representar números no enteros. Una de ellas es usando una coma fija. Este tipo de representación ubica siempre el punto o coma en alguna posición a la derecha del dígito menos significativo. Otra alternativa comúnmente usada es la que se conoce como representación en coma flotante. Bajo este esquema, un número puede ser expresado mediante un exponente y una mantisa. Por ejemplo el número 10.75 puede ser expresado como 10.75 * 10^0 o como 1.075 * 10^1.
15. Dado que un número en punto flotante puede expresarse de distintas formas que son equivalentes, es necesario establecer una única representación. Es por ello que se trabaja con números normalizados . Decimos que un número está normalizado si el dígito a la izquierda del punto o coma está entre 0 y la base. En particular, decimos que un número binario está normalizado si el dígito a la izquierda del punto es igual a 1. 1.00 * 2^1 -----NORMALIZADO 0.01 *2^-2 -----NO NORMALIZADO
16. Este estándar se desarrolló para facilitar la portabilidad de los programas de un procesador a otro y para alentar el desarrollo de programas numéricos sofisticados. Este estándar ha sido ampliamente adoptado y se utiliza prácticamente en todos los procesadores actuales. El estándar del IEEE define el formato para precisión simple de 32 bits y para precisión doble de 64 bits. • Precisión Simple Signo: Se encuentra en el bit más significativo. Exponente: Está conformado por los siguientes 8 bits de modo que el exponente mas negativo posible es 0000 0001 y el mas grande de los positivos es 1111 1110 Mantisa: Que queda representada en los 23 bits restantes Estándar IEEE-754 para representación de Punto Flotante Signo Exponente con signo Mantisa 1 bit 8bits 23 bits + el impl í cito
17. • Precisión doble Igualmente la precisión doble está formado por los mismos parámetros: Signo: Que también se encuentra en el bit más significativo. Exponente: Está conformado por los siguientes 11 bits. Se utiliza una representación en exceso 1023 de forma que el exponente más negativo posible quede en 000 0000 0001 y el más grande de los positivos en 111 1111 1110. Mantisa: Que en esta ocasión quedará representada en 52 bits. Signo Exponente Mantisa 1 bit 11 bits 52 bits + el impl í cito
18. La siguiente tabla muestra los rangos de representación de las precisiones simple y doble: Límites representables en el IEEE-754 Precisión Negativos Positivos Simple [-(2-2 -23 ) * 2 127 , -(2 -126) ] [2 -126 , (2-2 -23 ) * 2 127 ] Doble [2 -1022 , (2 – 2 -52 ) *2 1023 ] [2 -1022 , (2-2 -52 ) * 2 1023]
19. Para el caso concreto de la precisión simple, hay cinco rangos numéricos que son imposibles de representar. 1. Números negativos menores que -(2-2^-23)*2^127. Producen un desbordamiento negativo. 2. Números negativos mayores que -2^-126. Producen un desbordamiento por abajo. 3. El número cero. 4. Números positivos menores que 2^-126. Producen un desbordamiento por abajo. 5. Números positivos mayores que (2-2^-23)*2^127. Producen un desbordamiento positivo.
20. El número cero no puede ser representado con este esquema debido a la utilización de la técnica del bit escondido. Para solventar este problema se le asigna un código especial en el que tanto la mantisa como el exponente tienen todos sus bits a cero y el bit de signo es indeterminado (con lo que el cero tiene dos posibles representaciones). Otros dos valores a los que se les asigna un código especial son +∞ y -∞ que se codifican con el pertinente bit de signo, el exponente con todo unos y la mantisa con todo ceros. Otro caso especial a considerar con esta codificación es cuando se produce un resultado que es imposible de representar. Para esta situación se utiliza la notación “NaN” (acrónimo de Not a Number ). Estos valores a su vez se dividen en dos categorías dependiendo si el resultado es indeterminado o inválido y se denotan respectivamente por los símbolos “QNaN” y “SNaN”.
21. Procedamos pues a representar en formato coma flotante algunos números en base decimal como muestra: +118 1er paso: convertir el número a binario 7 = 1110110 2º paso: normalizamos el número 1.1110110 * 2^6 3er paso: calculamos el exponente con exceso 127 para precisión simple 6 + 127 = 133 = 1000010 1 así pues tenemos que: Pongamos otro ejemplo un poquito mas complicado: 0 10000101 11101100000000000000000 Signo Exponente en exceso Mantisa
22. -118.625 - 1er paso: Convertimos ambas partes de la expresión en binario 118= 1110110 y 0.625 = 101 por lo tanto 118,625= 1110110, 101 . Para hallar el valor de 0.625 en binario: 0.625 * 2 = 1 . 25 (1.25-1) * 2 = 0 . 5 (0.5 – 0) * 2 = 1 - 2º paso: Normalizamos el número: Es decir, correremos la coma hacia la izquierda tantas veces como sea necesario hasta lograr que delante de ella solo quede un 1. Han sido 6 posiciones, por tanto: 1 , 110110 101 * 10^6 3er paso: Calculamos el exponente con exceso 127. 6 + 127= 133= 10000101 1 10000101 110110 101 00000000000000 Signo Exponente en exceso Mantisa