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
Top Related