Sunteți pe pagina 1din 5

Representacin en Punto Flotante o

Minaya Villasana Abril-Julio, 2004

Representacin en base 2 o

Las computadoras tienen dos formas de representar nmeros: enteros (solo usado para enteros) y punto u otante (nmeros reales). Nosotros estamos interesados en aritmtica de punto otante. Punto otante est u e a muy relacionado con la notacin cient o ca. Un nmero real cualquiera x R, se puede descomponer como u una suma (innita) en base 10. Por ejemplo: 49.8125 = 4 101 + 9 100 + 8 101 + 1 102 + 2 103 + 5 104 + 0 105 + Cuando hablamos de la representacin en base diez, tenemos a disposicin un alfabeto de 10 para representar o o los nmeros: {0, 1, 2, 3, 4, 5, 6, 7, 8 y 9}. Las computadoras por lo general no representas los nmeros en base u u decimal sino en binario (base 2), donde el alfabeto es {0 y 1}. En el pasado existieron computadoras que ten una representacin octal (base 8) o hexagesimal (base 16). an o Una representacin t o pica en base 2 es (11011.01)2 el cual en base decimal corresponde al nmero 27.25. u (11011.01)2 1 24 + 1 23 + 0 22 + 1 21 + 1 20 + 0 21 + 0 22 1 = 16 + 8 + 2 + 1 + 4 = 27.25 =

Notar que el principio es el mismo que en base 10; cada d gito en la representacin acompaa a una potencia o n de la base. Los d gitos a izquierda del punto binario acompaan a potencias positivas de 2 y los que estn a n a la derecha del punto acompaan a potencias negativas de 2. n Ejemplo 1.1. Pasar x = 49 a binario.

En este caso x es un nmero entero y por lo tanto tiene una representacin binaria de la forma u o x = = = (an an1 an2 a1 a0 )2 an 2n + an1 2n1 + an2 2n2 + + a1 21 + a0 20 2(an 2n1 + an1 2n2 + an2 2n3 + + a1 ) + a0

luego x = 2 x1 + r, con x1 = an 2n1 + an1 2n2 + an2 2n3 + + a1 y r = a0 , de aqui que a0 es el resto de dividir x entre 2. Para hallar el siguiente d gito, a1 , realizamos lo mismo, pero ahora aplicado a x1 . x1 = 2(an 2n2 + an1 2n3 + an2 2n4 + + a2 ) + a1 . En nuestro caso particular, x = x1 x2 x3 x4 x5 x6 Por lo tanto 49 = (110001)2 . Ejemplo 1.2. Pasar x = 0.8125 a binario. A diferencia del ejemplo anterior x es un nmero decimal y por lo tanto tiene una representacin binaria de u o la forma x = = = (.a1 a2 a3 )2 a1 21 + a2 22 + a3 23 + 1 (a1 +a2 21 + a3 22 + ) 2 = = = = = = 49 24 12 6 3 1 0 = = = = = = = 2 24 + 1 a0 = 1 2 12 + 0 a1 = 0 2 6 + 0 a2 = 0 2 3 + 0 a3 = 0 2 1 + 1 a4 = 1 2 0 + 1 a5 = 1 0

luego 2x = a1 +a2 21 + a3 22 + , de aqui que a1 es el la parte entera de 2x. Para hallar el siguiente d gito, a2 , realizamos lo mismo, pero ahora aplicado a x1 . x1 = a2 21 + a3 22 + 2

En nuestro caso particular, x x1 x2 x3 Por lo tanto 0.815 = (.1101)2 . Ejemplo 1.3. Pasar x = 49.8125 a binario. De los ejemplos 1.2 y 1.1, podemos decir que 49.8125 = (110001.1101)2 = 0.8125 = 0.625 = 0.25 = 0.5 2x 2x1 2x2 2x3 = 1.625 a1 = 1 = 1.25 = 0.5 = 1 a2 = 1 a3 = 0 a4 = 1

1.1

Conversin de sistema Octal o

Tambin podemos hacer conversiones de base decimal a base ocho y base dos (10 8 2). Veamos el e ejemplo de conversin de base octal a base binaria y viceversa. o Para hacer esta conversin notamos que grupos de tres d o gitos binarios pueden ser traducidos directamente a base ocho segn la siguiente tabla: u Binario Octal 000 0 001 1 010 2 011 3 100 4 101 5 110 6 111 7

as que el nmero (101 101 001 .110 010 100)2 = (551.624)8 . u La justicacin se basa en el clculo siguiente: o a

x = = =

(0.b1 b2 b3 . . . b6 . . .)2 b1 21 + b2 22 + b3 23 + b4 24 + b5 25 + b6 26 + (4b1 + 2b2 + b3 )81 + (4b4 + 2b5 + b6 )82 +

Los nmeros en () en la ultima ecuacin solamente producen los d u o gitos 0,1, ..., 7 puesto que cada bi solamente puede tomar valores 0 o 1. por lo tanto esta debe ser la representacin en el sistema octal. o En el otro sentido hacemos la traduccin segn la tabla anterior, de modo que (5362.74)8 = (101011110010.111100)2 . o u

Representacin en la computadora o

Sea la base usada en el computador para la representacin ( puede ser 2, 8 o 16). Para x R, x = 0, o x = (.a1 a2 at ) E donde representa el signo ( = 1 es un nmero negativo y = 0 es un nmero positivo). La mantisa u u (.a1 a2 at ) y el exponente E. En el ejemplo 1.3, vimos que 49.8125 = (110001.1101)2 . Para representar el nmero primero lo normalizamos. La normalizacin de (110001.1101)2 resulta en (1.100011101)2 25 . u o Notar que el d gito 1 (a izquierda) siempre estar presente en la normalizacin (porqu?). Por lo tanto este a o e d gito muchas veces se omite en las representaciones para permitir aumentar la cantidad de informacin o almacenada. Siguiendo el estandar de la IEEE (32 bits), un nmero puede ser representado de la siguiente u manera: un bit para el signo, ocho bits para el exponente y 23 bits para la mantisa. Si la mantisa tiene menos de 23 d gitos entonces rellenamos los bits restantes con 0. El exponente se guarda sumndole el sesgo a correspondiente al nmero de bits de la representacin (para 32 bits el sesgo es 127). la razn es que el u o o exponente es un nmero con signo entre -126 y 127, el sesgo se suma al exponente real para almacenar u un nmero positivo que represente al exponente. En nuestro ejemplo el nuevo exponente a almacenar es u 5 + 127 = 132 = (10000100)2 . [0][010000100][1000111010000000 . . . 0] Nota: una mquina de 64 bits (precisin doble) utiliza 1 bit para el signo, 11 bits para el exponente y 52 a o para la mantisa. Al representar un nmero real (posiblemente con una representacin binaria innita) en la computadora u o lo hacemos con nmero nito de bits. Mas an, en la computadora representamos un nmero innito de u u u nmero reales con un nmero nito de bits. u u Sea f l(x) la representacin en punto otante de x R. Supongamos que x R y x [f l(x1 ), f l(x2 )]. o Existen dos formas de representar a x. 1. Truncando: Ignora todos los bits mas all del t-simo d a e gito, si t es el nmero de bits disponibles para u la mantisa. 2. Redondeando: Seleccionar el punto otante ms cercano. a f l(x ) : x f l(x ) f l(x ) x 1 1 2 f l(x) = f l(x ) : x f l(x ) > f l(x ) x 2 1 2

Mientras x sea ms grande, (x1 )f l(x2 )incrementa, dondex1 y x2 , por lo tanto el error de truncamiento a aumenta.

Errores

Existen dos formas de medir el error: Denicin 3.1. Error Absoluto = |x f l(x)|. o Denicin 3.2. Error Relativo = f rac|x f l(x)||x|. o La diferencia entre los dos errores es que el error absoluto nos ofrece informacin sobre la concordancia o de puestos decimales mientras que el relativo nos dice cual es el acuerdo de los valores en cifras signicativas. Consideremos la siguiente tabla de valores

Ejercicios
1. cual es el mayor exponente que se puede representar en un computador binario de 32 bits? 2. cual es el menor exponente que se puede representar en un computador binario de 32 bits? 3. cual es el sesgo para un mquina de 64 bits? a

S-ar putea să vă placă și