Aritmetica Punto Flotante

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 9

CI-3815

Prof. Angela Di Serio

Organizacin del Computador Tema 3. Punto Flotante

Punto Flotante
Muchas aplicaciones requieren trabajar con nmeros que no son enteros. Existen varias formas de representar nmeros no enteros. Una de ellas es usando un punto o coma fijo. Este tipo de representaci n ubica simpre el punto o coma en alguna posici n a la derecha del dgito menos significativo. Otra alternativa comunmente usada es la que se conoce como representaci n en punto flotante. Bajo este esquema, un nmero puede ser expresado mediante un exponente y una mantisa. Por ejemplo el nmero 10.75 puede ser expresado como

10.75 x 1.075 x mantisa

10 0 10 1 exponente

En general, un nmero en punto flotante puede ser representado como d0 .d1 d2 d3 ...dk x bexp donde d0 .d1 d2 d3 ...dk se conoce como la mantisa, b es la base y exp es el exponente. Qu se necesita para representar un nmero en punto flotante? el signo del nmero. el signo del exponente. Dgitos para el exponente. Dgitos para la mantisa.

Dado que un nmero en punto flotante puede expresarse de distintas formas que son equivalentes, es necesario establecer una nica representacin. Es por ello que se trabaja con nmeros normalizados. Decimos que un nmero est normalizado si el dgito a la izquierda del punto o coma est entre 0 y la base ( 0< dgito a la izquierda del punto < b). En particular, decimos que un nmero binario est normalizado si el dgito a la izquierda del punto es igual a 1.
Pgina 1 de 9

CI-3815

Prof. Angela Di Serio

Organizacin del Computador Tema 3. Punto Flotante

1.00 x 10 -1 0.01 x 10 2

normalizado no normalizado

Estndar IEEE-754 para representacin de Punto Flotante Este estndar se desarroll para facilitar la portabilidad de los programas de un procesador a otro y para alentar el desarrollo de programas numricos sofisticados. Este estndar ha sido ampliamente adoptado y se utiliza prcticamente en todos los procesadores y coprocesadores aritmticos actuales. El estndar del IEEE define el formato para precisin simple de 32 bits y para precisi n doble de 64 bits.

Precisin Simple El formato para los nmeros de precisin simple es de 32 bits.

signo 1

exponente con signo 8

Mantisa 23

La representacin de un nmero en precisin simple en el formato IEEE-754 consta de las siguientes partes: Signo se encuentra en el bit ms significativo, de esta manera podemos usar la misma circuitera ( de enteros) para llevar a cabo comparaciones con respecto al cero. Exponente con signo. Est conformado por los siguientes 8 bits. Esta ubicacin del exponente en la palabra facilita las comparaciones de nmeros. Si los nmeros se encuentran normalizados, comparamos los exponentes. Si son

Pgina 2 de 9

CI-3815

Prof. Angela Di Serio

Organizacin del Computador Tema 3. Punto Flotante

iguales pasamos a comparar las mantisas. Pero, qu representacin es m s conveniente usar para el exponente?. Si utilizamos Complemento a Dos, los exponentes negativos aparecern como mayores que los exponentes positivos al usar la circuitera de enteros. C2(-1) = C2(0) = C2(1) = 1111 1111 0000 0000 0000 0001

Para evitar este inconveniente, se utiliza una representacin en exceso N de forma que el exponente ms negativo posible quede en 0000 0001 y el m s grande de los positivos en 1111 1110. El estndar IEEE 754 usa como exceso 127 para precisi n simple.

Exponente ms negativo representable: x + 127 = 0000 0001 x = -126

Exponente ms grande representable x + 127 = 1111 1110 x = 127 Mantisa. Est formada por el resto de los bits en la palabra (23). Como los nmeros se representan de manera normalizada entonces siempre tendremos un 1 a la izquierda del punto. Por lo tanto este dgito no es necesario almacenarlo en la palabra y se tiene de manera implcita. La mantisa consiste en 24 bits de precisin.

Pgina 3 de 9

CI-3815

Prof. Angela Di Serio

Organizacin del Computador Tema 3. Punto Flotante

Ejercicio Representar segn el estndar IEEE de punto flotante los siguientes valores: 7 - Convertimos el nmero a binario. 710 = 1112 - Normalizamos el nmero. 1.112 x 102 2 - Calculamos el expone nte con exceso127 para precisi n simple. 2 + 127 = 12910 = 1000 00012 - El nmero 710 en el estndar IEEE es representado como: 0 signo 10000001 exponente en exceso 11000000000000000000000 mantisa

21

2110 = 101012 = 1.01012 x 102 4 exponente 4 + 127 = 13110 = 1000 00112 10000011 01010000000000000000000

Precisin Doble La representacin de un nmero en precisi n doble en el formato IEEE-754 consta de las siguientes partes: Signo se encuentra en el bit ms significativo

Pgina 4 de 9

CI-3815

Prof. Angela Di Serio

Organizacin del Computador Tema 3. Punto Flotante

Exponente en exceso. 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 ms grande de los positivos en 111 1111 1110. Mantisa. Est formada por 52 bits ms el bit implcito (53).

signo 1 bit

exponente en exceso 11 bits

Mantisa 52 bits

Casos Especiales Para valores de exponente desde 1 hasta 254 en el formato simple y desde 1 a hasta 2046 en el formato doble, se representan nmeros en punto fijo normalizados. El exponente est en exceso, siendo el rango del exponente de -126 a +127 en el formato simple y de -1022 a +1023 en el doble. Un nmero normalizado debe contener un bit 1 a la izquierda del punto binario; este bit est implcito, dando una mantisa efectiva de 24 bits para precisin simple o 53 bits para precisin doble. Un exponente cero junto con una parte fraccionaria cero representa el cero positivo o negativo, dependiendo del bit de signo. Es til tener una representacin del valor 0 exacto.

Precisin Simple
Exponente en exceso 0 0 1 .. 254 255 255 0 <>0 Mantisa 0 <>0 Valor Cero Nmero no normalizado (0. + Mantisa) x 2-126 (1. + Mantisa) x 2 exp-127 Infinito Not a Number

Pgina 5 de 9

CI-3815

Prof. Angela Di Serio

Organizacin del Computador Tema 3. Punto Flotante

Precisin Doble
Exponente en exceso 0 0 1 .. 2046 2047 2047 0 <>0 Mantisa 0 <>0 Cero Nmero no normalizado (0. + Mantisa) x 2-1022 (1. + Mantisa) x 2 exp-1023 Infinito Not a Number Valor

Conversin de un nmero en Punto Flotante Decimal a Binario Un nmero Numb = d0 .d1 d2 d3 ... en base b representa

podemos reescribirlo de la siguiente forma:

De la ltima expresi n podemos deducir el algoritmo de c onversin de punto flotante decimal a cualquier base Dado un nmero Num10 en punto flotante decimal y una base b d0 = parte entera(Num10 ) Num10 = (Num10 - d0 ) * b i=1 Repetir desde i=1 hasta N di=parte entera (Num10 ) Num10 =(Num10 - di) * b Num10 = d0 .d1 d2 d3 d4 ...dN b

Pgina 6 de 9

CI-3815

Prof. Angela Di Serio

Organizacin del Computador Tema 3. Punto Flotante

Ejemplos
a.) Convertir 0.510 a binario y hallar su representacin en IEEE precisi n simple 0.50 (0.50-0) * 2 = 1 (1.00-1) * 2 = 0 0.5010 = 0.12 = 1.0 x 2-1 exponente en exceso= -1 + 127 = 12610 = 0111 11102 0 01111110 00000000000000000000000

d0 =0 d1 =1

0 signo

01111110 exponente en exceso

00000000000000000000000 mantisa

b.) Convertir 3.7510 a binario y hallar su representacin en IEEE precisi n simple 3.75 (3.75-3) * 2 = 1.50 (1.50-1) * 2 = 1.00 (1.00-1) * 2 = 0.00 3.7510 = 11.112 = 1.111 x 21 d0 =3 d1 =1 d2 =1

exponente en exceso= 1 + 127 = 12810 = 1000 00002

0 signo

1000 0000 exponente en exceso

11100000000000000000000 mantisa

Pgina 7 de 9

CI-3815

Prof. Angela Di Serio

Organizacin del Computador Tema 3. Punto Flotante

c.) Convertir 0.310 a binario y hallar su representacin en IEEE precisi n simple 0.3 (0.3-0) * 2 = 0.6 (0.6-0) * 2 = 1.2 (1.2-1) * 2 = 0.4 (0.4-0) * 2 = 0.8 (0.8-0) * 2 = 1.6 (1.6-1) * 2 = 1.2

d0 =0 d1 =0 d2 =1 d3 =0 d4 =0 d5 =1

0.310 = 0.01001001001...2 = 1.001001001... x 2-2 exponente en exceso= -2 + 127 = 12510 = 0111 1101 2

0 signo

0111 1101 exponente en exceso

00100100100100100100100 Mantisa

Esta representaci n es una aproximaci n. No puede ser escrito en forma precisa. Los nmeros punto flotante son normalmente aproximaciones. La razn de esto es que existe un nmero infinito de nmeros reales entre dos nmeros dados.

d.) Qu nmero decimal representa el siguiente patrn de bits en IEEE precisi n simple? 0 00001100 01000000000000000000000 Calculamos el exponente que va a formar parte del nmero decimal, restando el valor del exponente menos el exceso de 127. exponente en exceso= 1210 = exponente + 12710 exponente = 12 - 127 = -11510 Los dgitos que estn en la mantisa van a formar parte de el nmero decimal, y por tanto el nmero representado es 1.012 x 2-115 = ( 1. + 0.25) x 2-115 = 1.2510 x 2-115
Pgina 8 de 9

CI-3815

Prof. Angela Di Serio

Organizacin del Computador Tema 3. Punto Flotante

e.) Qu nmero decimal representa el siguiente patrn de bits en IEEE precisi n simple? 0 10000011 10100000000000000000000 exponente en exceso = 131 exponente = 131 - 127 = 4 1.101 x 24 = 11010 = 2610

Ejercicios Propuestos

Convertir los siguientes nmeros a punto flotante binario -1.75610 15.7510 5.62510 1.0 x 10-1 10 5.7525*1010

Cul es el menor entero positivo que se puede representar en C2 con 32 bits, pero que no puede ser representado en Punto Flotante IEEE precisin simple? Qu nmero decimal representan los siguientes patrones de bits si se interpretan como punto flotante IEEE precisin simple ? c1680000 7f800000 fff80000 42be8000 ff800000

Pgina 9 de 9

También podría gustarte