clase nº5_punto flotante [modo de compatibilidad]

Upload: raul-munoz-ventura

Post on 07-Jan-2016

221 views

Category:

Documents


0 download

DESCRIPTION

KJ

TRANSCRIPT

  • Comunicaciones Digitales

    Representacin Punto Flotante

    Comunicaciones Digitales, Clase N 05

    1

  • Representacin Punto FlotanteLos computadores tienen registros de un determinado nmero de bits, porejemplo:8; 16;32, lo cual significa una cantidad mxima que se puederepresentar, si un es muy grande podra ser que no puede representarseprovocando un OVERFLOW.

    Si trabajamos un registro considerando algunos bits de este como decimales(notacin punto fijo) podramos tener la situacin de no poder representar unacantidad por ser muy pequea, menor que el nmero manejable, esto seconoce como UNDERFLOW.

    Comunicaciones Digitales, Clase N 05

    2

    Ejemplo: si tenemos un registro de 16bits

    Donde la parte entera est representada por: yLa parte fraccionaria por:

    La cantidad ms grande a representar es:

    La cantidad ms pequea es:

    06781415 ...... dddddd815......dd

    07 ....dd

    102 )99609375,255()11111111,11111111( =

    102 )003906225,0()00000001,00000000( =

  • Representacin Punto Flotante

    Si el usuario de un computador tiene la necesidad de trabajar con cantidades msgrandes, la solucin es cambiar el registro, es decir cambiar el computador, o usaralguna solucin de software, por ejemplo subrutinas de doble precisin.

    Una solucin distinta es usar notacin punto flotante en este caso larepresentacin del nmero puede variar respecto del punto de fraccin. As unacantidad puede tener varias representaciones en un mismo sistema numrico.

    Comunicaciones Digitales, Clase N 05

    3

    cantidad puede tener varias representaciones en un mismo sistema numrico.En una cantidad expresada en notacin punto flotante rige la siguiente relacin:

    donde: M=mantisa, B=Base del sistema numrico ye=exponente

    Ejemplo:

    eMxBN =

    213 100.126000100.1261026.10.1260 ===

  • Representacin Punto FlotanteLa mantisa representa la magnitud del nmero. El exponente es la parte querepresenta el nmero de lugares a desplazar el punto decimal o binario.

    Ejemplos de nmeros en notacin punto flotante en el sistema binario:

    2312

    6242

    201,11120011101,0211101,0)1101,1(2001101,0201,1121101,0)1101(

    ===

    ===

    Comunicaciones Digitales, Clase N 05

    4

    Un nmero en punto flotante se puede organizar, respecto de un registro, de variasformas, siendo una de las ms usuales la siguiente:

    signo exponente

    exponente signo mantisa

    mantisa

    es 121 .....eeee iii ms nn mmmmm 1321 ........ )()1(

    12

    21

    11

    ...2)22........22( eesnnnnm immmmsN ++++=

  • Representacin Punto FlotanteEs evidente que la representacin en punto flotante puede trabajar con cantidadesms grandes y ms pequeas que la notacin punto fijo, puesto que la distribucinde los campos no cambia, resulta conveniente analizar el rango de la notacinpunto flotante en funcin del nmero de bits del exponente y la mantisa.

    De lo visto anteriormente acerca de la representacin de nmeros negativos, resultaobvio que se elija la notacin complemento 2 para manejar las cantidades delexponente y la mantisa en punto flotante.

    Comunicaciones Digitales, Clase N 05

    5

    Mantisa, analizaremos el rango de la mantisa, tenemos n bits en complemento 2,excluyendo el bit signo, entonces:Si n = 7, el nmero positivo ms grande representable es:

    Por otro lado el nmero negativo ms grande representable es:

    1212127)01111111( 7102 === n

    n22128)10000000( 7102 ===

  • Representacin Punto Flotante|-------------------------------------|-------------------------------|

    0para convertir este rango entero a decimal, se debe dividir por , entonces el rango de la mantisa es:|-------------------------------------|-------------------------------|

    -1 0

    n2 12 + nn2

    n+ 21

    Comunicaciones Digitales, Clase N 05

    6

    -1 0para una mantisa de 24 bits incluyendo el bit del signo se tiene n=23, entonces:

    veamos ahora el rango del exponente, tenemos un entero de n bits en complemento2,

    entonces, el rango del exponente es:

    + 21

    23211211 mantisamantisa n

    |-------------------------------------|-------------------------------|0

    n2 12 + n

  • Representacin Punto Flotante

    Para un exponente de 8 bits incluyendo el bit del signo se tiene i =7, entonces:

    Dado un nmero en notacin punto flotante con el exponente de i bits ms un bit designo y mantisa de n bits ms un bit de signo, se tiene lo siguiente:

    127exp12812exp2 onenteonente ii

    2)21(max = nN 12 i

    Comunicaciones Digitales, Clase N 05

    7

    La mxima cantidad a representar es:

    La cantidad ms negativa que se puede representar es:

    La cantidad mnima (incremento mnimo) que se puede representar es:

    Resumiendo el rango de un nmero en notacin punto flotante con el exponente de ibits, ms el signo y mantisa de n bits ms signo, tiene el siguiente rango:

    |--- --------------------------------------------| 0 |---------------------------|

    2)21(max = nN21=negN

    )12( i

    inN 222min =

    21)12( i i

    n 222 in 222 2)21( n

    )12( i

  • Representacin Punto FlotanteEjemplo:Si i =7, n=23, el rango de los nmeros representables es:

    |------------------------------------------------------| 0 |------------------------------------------------------------------------|

    N 0 mayor

    12721 12823 22 12823 22 12723 2)21(

    Comunicaciones Digitales, Clase N 05

    8

    Overflow underflow overflow

    Si se quiere obtener un uso eficiente de la notacin punto flotante, es decir,hacer posible que los dgitos de la parte fraccionaria sean significativos , para unnmero positivo el ms significativo (excluyendo el bit signo) de los dgitosdebera ser uno, si se cumple esto se dice que el nmero est normalizado.Por otro lado para un nmero negativo el ms significativo (excluyendo el bitsigno) de los dgitos debera ser cero, si se cumple esto se dice que el nmeroest normalizado.

  • Representacin Punto FlotanteEjemplo: Obtener la representacin en punto flotante de

    Si se representa esta cantidad con 16 bits de mantisa se obtiene:

    10)071111,0(

    210 )00011001111011010001010001001000,0()071111,0( =

    Comunicaciones Digitales, Clase N 05

    9

    no se representan 16 bits

    Se perdieron los 16 bits menos significativos de la cantidad original. La representacin en el registro de 16 bits sera:

    con exponente=0

    0100001100100001,0

    0100001100100001

  • Representacin Punto Flotante

    Una representacin ms exacta se obtiene a al multiplicar lamantisa por y usar exponente (-2), entonces se obtiene:

    en este caso la representacin en el registro sera :

    22)0100010100100011,0( 224 =

    Comunicaciones Digitales, Clase N 05

    10

    signo

    En este caso se perdieron los 14 bits menos significativos de lacantidad original. En consecuencia esta representacin es msexacta que la anterior.

    0 100100011010001

  • Representacin Punto FlotanteAl observar el contenido del registro vemos que no se puedeefectuar un nuevo corrimiento a la izquierda, puesto que el primerbit pasara de 0 a 1 , cambiando el signo de la cantidad.

    signoEjemplo2:

    0 100100011010001

    Comunicaciones Digitales, Clase N 05

    11

    Ejemplo2: Obtener la representacin en punto flotante de:

    En un registro de 16 bits.

    Conclusin:Un nmero en notacin punto flotante est normalizado, si los dosdgitos ms significativos de la mantisa son diferentes.

    210 )00011001111011010001010001001000,0()071111,0( =

  • Representacin Punto FlotanteEjemplo:

    Dado el siguiente nmero binario obtener la representacin punto flotante (formato exponente = 8, mantisa = 24)

    nen punto fijo

    nen punto flotante.

    2)0101010000110001.0000101010001111(010001

    2 2)100000101010100100000000010111000111.0(

    Comunicaciones Digitales, Clase N 05

    12

    El nmero en notacin punto flotante almacenado en un registro que:

    signo exponente signo mantisaExponente mantisa

    1111100010100000000100100010001012 22 242

  • Representacin Punto FlotanteObtener el valor en notacin punto flotante en un formato de 8 bits para el exponente y 24 bits para la mantisa.Primero se debe convertir el valor (31,14159236535) en base 10 a un nmero binario segn los mtodos conocidos.

    Resultado:

    pi10

    210 )10011101000100110101001,11111()1415926535,31( =

    Comunicaciones Digitales, Clase N 05

    13

    n en punto fijo

    n en punto flotante

    Almacenado en el registro queda:

    signo exponente signo mantisaexponente mantisa

    2)10000101010011110100110,1111100(0000110

    2 2)01010100011101001101011010111,0(

    11111011010100111101000000001100

  • Representacin Punto FlotanteObtener el valor (-4/7) en notacin punto flotante en un formato de 8bits para el exponente y 24 bits para la mantisa.Primero se debe convertir el valor (4/7) en base 10 a un nmerobinario notacin punto fijo, segn los mtodos conocidos.

    Resultado:n en punto fijo210 )010000100100101001001001,0()7/4( =

    Comunicaciones Digitales, Clase N 05

    14

    Para poder representar una cantidad positiva en notacin C2,debemos obtener un cero en el bit ms significativo ( ), por lotanto la cantidad expresada en punto fijo debe ajustarse dividiendopor 2, entonces tenemos:

    Luego 4/7en notacin punto flotante es igual a:

    12

    21

    10 )0010010010010010100100100,0(2)7/4( =

    0 0000001 0 10010010010010010010010

  • Representacin Punto FlotantePara (-4/7) calculamos la nueva mantisa complementando los bits ysumando 1 en el bit menos significativo.

    Resultado:

    1110011010111101011010117/400011101011010111101011010110010100101000010100101007/4

    Comunicaciones Digitales, Clase N 05

    15

    Luego (4/7) en notacin punto flotante es igual a:

    exponente mantisa

    0 0000001 1 01101101101101101101110

    1110011010111101011010117/4

  • Representacin Punto FlotanteComprobacin: si sumamos (4/7) +(-4/7) deberamos obtener comoresultado 0.

    Para sumar dos cantidades en punto flotante se igualan losexponentes (al exponente mayor) y se suman las mantisas.

    Como en este caso los exponentes son iguales (exp=1), sumamoslas mantisas

    Comunicaciones Digitales, Clase N 05

    16

    las mantisas0100 1001 0010 0100 1001 0010

    1011 0110 1101 1011 0110 1110

    0000 0000 0000 0000 0000 0000

    El carry que se genera no se considera por lo tanto el resultado escero