IEEE754
IEEE754
IEEE754
php
Figura - Representacin de un nmero real con precisin simple en el estndar IEEE 754. El exponente se suele representar en Exceso a 2n-1-1, mientras que, para la mantisa, normalmente se utiliza Signo Magnitud. Adems, la mantisa se suele normalizar colocando la coma decimal a la derecha del bit ms significativo. Ejemplo 1: Para escribir el nmero 101110,0101011101000011111000011111000100112 en el estndar IEEE 754 con precisin simple, exponente en Exceso a 2n-1-1 y mantisa en Signo Magnitud, primero hay que normalizarlo: 1,011100101011101000011111000011111000100112 x 25 El exponente, en Exceso a 2n-1-1, ser: 510 + (28-1 - 1)10 = 510 + (27 - 1)10 = 510 + (128 - 1)10 = 13210 = 10000100EX. a 127 De la mantisa se cogen los bits 23 bits ms significativos: 1,0111001010111000000111 El resto de bits no se pueden representar, ya que, no caben en la mantisa. Sin embargo, cuando la mantisa se normaliza situando la coma decimal a la derecha del bit ms significativo, dicho bit siempre vale 1. Por tanto, se puede prescindir de l, y coger en su lugar un bit ms de la mantisa. De esta forma, la precisin del nmero representado es mayor. As, los bits de la mantisa sern: 01110010101110100001111 Al bit omitido se le llama bit implcito. Por otra parte, el bit de signo vale 0, ya que, el nmero es positivo. En consecuencia, el nmero se puede representar como:
Los programadores, para representar a los nmeros reales en este formato, suelen utilizar el Sistema Hexadecimal.
As pues,
En este caso, los nmeros no son exactamente iguales, ya que, con precisin simple no se han podido representar todos los bits de la mantisa. Ejemplo 2: Dado el nmero 3E400000CFL del estndar IEEE 754 con precisin simple, exponente en Exceso a 2n-11 y mantisa en Signo Magnitud con bit implcito, para averiguar a qu nmero representa en base 10, se pueden realizar los siguientes pasos: 1) Convertir 3E40000016 a base 2:
3) Pasar el exponente a base 10: 011111002 - (28-1 - 1)10 = 12410 - (27 - 1)10 = 12410 - (128 - 1)10 = 12410 - 12710 = -3 4) Escribir el nmero en notacin cientfica. Para ello, la mantisa se debe escribir con el bit implcito (1), seguido de la coma decimal (,) y de los bits de la mantisa (10000000000000000000000), teniendo en cuenta que los ceros por la derecha se pueden despreciar. Por otra parte, el nmero es positivo, ya que, el bit de signo es 0. Por tanto, el nmero es: 1,1 x 2-3 5) Expresar el nmero en base 10. Para ello, hay dos formas de hacerlo, la primera es: 1,1 x 2-3 = 0,00112 = ( 2-3 + 2-4 )10 = 0,12510 + 0,062510 = 0,187510 y la segunda: 1,1 x 2-3 = ( ( 20 + 2-1) x 2-3 )10 = ( ( 1 + 0,5) x 0,125 )10 = ( 1,5 x 0,125 )10 = 0,187510 Por tanto, 3E400000CFL (PRECISIN SIMPLE) = 1,1 x 2-3 = 0,00112 = 0,187510
Figura - Representacin de un nmero real con precisin doble en el estndar IEEE 754. Ejemplo 3: Si se quiere escribir el nmero 19,562510 en el estndar IEEE 754 con precisin doble, exponente en Exceso a 2n-1-1 y mantisa en Signo Magnitud con bit implcito, los pasos a seguir son: 1) Cambiar 19,562510 a base 2. Primero la parte entera:
De modo que, 19,562510 = 10011,10012 2) Normalizar el nmero binario obtenido, colocando la coma decimal a la derecha del bit ms significativo: 10011,10012 = 1,00111001 x 24 3) Escribir el exponente en Exceso a 2n-1-1: 410 + (211-1 - 1)10 = 410 + (210 - 1)10 = 410 + (1024 - 1)10 = 102710 = 10000000011EX. a 1023 4) Establecer la mantisa utilizando bit implcito. Para ello, se cogen los ocho bits que estn a la derecha de la coma (00111001) y el resto de la mantisa se rellena con ceros: 0011100100000000000000000000000000000000000000000000 5) Expresar el nmero en el estndar IEEE 754 con precisin doble. En este caso, hay que tener en cuenta que el bit de signo vale 0, ya que, el nmero es positivo:
Figura - Casos especiales en el estndar IEEE 754 con precisin simple o doble. Los dos ltimos casos merecen especial atencin, ya que, cuando todos los bits del exponente son ceros (00...0), esto quiere decir que no se est utilizando bit implcito. Si, adems, la mantisa es todo ceros (00...0), el nmero representado es el cero (0), pero si la mantisa es distinta de todo ceros, el nmero que se est representando es muy pequeo, de forma que, el exponente valdr -126 -1022, dependiendo de si el nmero est escrito en precisin simple o doble, respectivamente. Ejemplo 4: Dado el nmero 805C0000CFL del estndar IEEE 754 con precisin simple, exponente en Exceso a 2n-11 y mantisa en Signo Magnitud con bit implcito, para averiguar a qu nmero representa en base 10, se pueden realizar los siguientes pasos: 1) Convertir 805C000016 a base 2:
3) Al observar que todos los bits del exponente son ceros (00000000) y la mantisa es distinta de todo ceros, se deduce que es un caso especial. Se est representado a un nmero muy pequeo sin bit implcito y, por tanto, el exponente es 126.
4) En notacin exponencial, puesto que en este caso no se utiliza bit implcito, la mantisa se escribe con un cero (0), seguido de la coma decimal (,) y de los bits de la mantisa (10111000000000000000000). En cuanto al signo del nmero, es negativo, ya que, el bit de signo es1. Con todo ello, el nmero es: -0,10111 x 2-126 5) Expresar el nmero en base 10:
Figura - Clculo del valor en base 10 de un nmero escrito en IEEE 754 con precisin simple.
Figura - Clculo del valor en base 10 de un nmero escrito en IEEE 754 con precisin doble.
Figura - Rango de representacin en el estndar IEEE 754 con precisin doble. Ambos rangos de representacin son discontinuos, es decir, no se pueden representar todos los nmeros reales que existen entre dos cualesquiera de ellos. Esto es debido a que entre dos nmeros reales cualesquiera siempre existen infinitos nmeros, sin embargo, slo se dispone de un nmero determinado de bits para representar a los nmeros reales. Por esta razn, en las computadoras digitales no se pueden representar a todos los nmeros reales. Por ejemplo, con precisin simple, alrededor del nmero cero (0) existen infinitos nmeros reales, mayores que -2-126 y menores que2126, que no son representables. Grficamente:
o o
2 Enlaces externos
[editar]Anatoma [editar]Precisin
1 |S|
8 Exp | Mantisa
23
+-+--------+-----------------------+
donde S es el bit de signo y Exp es el campo exponente. (Para el signo: 0=Positivo ; 1= Negativo). El exponente es desplazado en el un nmero en precisin simple, un exponente en el rango 126 a +127 es desplazado mediante la suma de 127 para obtener un valor en el rango 1 a 254 (0 y 255 tienen valores especiales descritos ms adelante). Cuando se interpreta el valor en coma flotante, el nmero es desplazado de nuevo para obtener el exponente real. El conjunto de valores posibles pueden ser divididos en los siguientes: ceros nmeros normalizados nmeros desnormalizados infinitos NaN (E, no es un nmero, como por ejemplo, la raz cuadrada de un nmero negativo)
Las clases se distinguen principalmente por el valor del campo Exp, siendo modificada sta por el campo fraccin. Considera Exp y Fraccin como campos de nmeros binarios sin signo (Exp se encuentra en el rango 0255):
Clase
Exp
Fraccin
Ceros
Nmeros desnormalizados 0
distinto de 0
Nmeros normalizados
1-254 cualquiera
Infinitos
255
255
distinto de 0
Para nmeros normalizados, los ms comunes, Exp es el exponente desplazado y Fraccin es la parte fraccional del significante (o significando). El nmero tiene valor v: v = s 2e m Donde s = +1 (nmeros positivos) cuando S es 0 s = 1 (nmeros negativos) cuando S es 1 e = Exp
m = 1,Fraccin en binario (esto es, el significando es el nmero binario 1 seguido por la coma decimal seguido por los bits de Fraccin). Por lo tanto, 1 m < 2. Notas: 1. Los nmeros desnormalizados son iguales excepto que e = 126 y m = 0,Fraccin. (e NO es 127 : el significando ha de ser desplazado a la derecha por un bit ms, de forma que incluya el bit principal, que no siempre es 1 en este caso. Esto se balancea incrementando el exponente a -126 para el clculo.) 2.
3. Hay dos ceros. +0 (S es 0) y 0 (S es 1) 4. Hay dos infinitos + (S es 0) y (S es 1) 5. Los NaN s pueden tener un signo y un significando, pero estos no tienen otro significado que el que puedan aportar en pruebas de diagnstico; el primer bit del significando es a menudo utilizado para distinguir NaN s sealizados de NaN s silenciosos 6. los NaNs y los infinitos tienen todos los bits a 1 en el campo Exp.
[editar]Ejemplo
Codifiquemos el nmero decimal -118,625 usando el sistema de la IEEE 754. Necesitamos obtener el signo, el exponente y la fraccin. Dado que es un nmero negativo, el bit de signo es "1". Busquemos los dems valores:
127 (en otras palabras, al exponente se le suma 127 y se almacena, a esto tambin se le
Primero, escribimos el nmero (sin signo) usando notacin binaria. Mira el sistema de numeracin binario para ver cmo hacer esto. El resultado es 1110110,101. Ahora, movamos la coma decimal a la izquierda, dejando slo un 1 a su izquierda. 1110110,101=1,11011010126 Esto es un nmero en coma flotante normalizado. El significante es la parte a la derecha de la coma decimal, rellenada con ceros a la derecha hasta que obtengamos todos los 23 bits. Es decir 11011010100000000000000. El exponente es 6, pero necesitamos convertirlo a binario y desplazarlo (de forma que el exponente ms negativo es 0, y todos los exponentes son solamente nmeros binarios no negativos). Para el formato IEEE 754 de 32 bits, el desplazamiento es 127, as es que 6 + 127 = 133. En binario, esto se escribe como 10000101. Poniendo todo junto:
1 |S|
8 Exp |
23 Significante |
+-+--------+-----------------------+ |1|10000101|11011010100000000000000| +-+--------+-----------------------+ 31 30 derecha) desplazado +127 23 22 0 <-- ndice del bit (0 a la
http://www.error500.net/garbagecollector/apuntes/repres entacin_interna_de_nmero.php
Como veamos el otro da, hay que establecer una correspondencia entre el conjunto los datos a representar y el binario limitado a los n bits que constiyan el ancho de palabra en el procesador. La codificacin depende del tipo de dato a representar y en el caso de los reales tenemos un problema y dos soluciones. El problema para la representacin interna de nmeros reales en el ordenador digital estriba en el punto decimal que separa la parte entera y la parte fraccionaria, adems del problema compartido con los nmeros enteros del signo. Las dos estrategias que hay para solucionarlas son la representacin en punto fijo y la ms habitual, ya en casi todos los ordenadores modernos, representacin en coma flotante. En la representacin en punto fijo cada nmero se representa por n bits para la parte entera y m bits para la parte fraccionaria. De esta forma nos ahorramos el punto puesto que siempre estar colocado en la misma posicin (fijo). Su principal hndicap radica en que no todos los nmeros reales pueden representarse con este formato (depender de n y de m) y un mismo nmero en punto fijo puede representar a muchos nmeros reales. Se denomina rango de una representacin en punto fijo al subconjunto de los nmeros reales que se puede representar. Se denomina resolucin a la distancia mnima entre dos nmeros consecutivos en punto fijo. La resolucin est relacionada con el valor m de la representacin. La representacin en punto flotante consta de los campos: signo (un bit), mantisa y exponente. La mantisa es un nmero comprendido entre 0.5 y 1 y el exponente indica la potencia a la que hay que elevar la base (binaria) para que multiplicada por la mantisa nos reconstruya el nmero. Adems de eliminar el punto decimal, esta representacin aumenta el rango de representacin.
Existen muchos formatos de representacin en punto flotante. El ms usado es el estndar IEEE 754, del que hay tipos: formato IEEE 754 simple precisin, en el que la palabra es de 32 bits y formato IEEE 754 doble precisin en el que la palabra es de 64 bits. Difieren adems de en el tamao de la palabra en que se basan, en el nmero de bits que asignan a cada campo. Formato IEEE 754 simple precisin. La palabra de 32 bits se organiza en los siguientes campos: 1 bit para el signo 8 bits para exponente 23 bits para la mantisa
Formato IEEE 754 doble precisin. La palabra de 64 bits se organiza en los siguientes campos: 1 bit para el signo 11 bits para la exponente 52 bits para la mantisa
Por ltimo, el enlace a la pgina del padre del IEEE 754: William Kahan
http://www.etsimo.uniovi.es/~antonio/uned/ieee754/ejemplos.html
la hemos corrido +5 posiciones. Lo tendremos en cuenta para despus. el bit implcito no lo representamos en la mantisa, luego cogemos los 7 bits siguientes a la coma Mantisa: 1010101 3) El exponente: Se calcula en base al exceso 2^(n-1) -1 (especfico de IEEE 754) Entonces tenemos : +5 (de la coma corrida) + 2^(n1)-1=132= 10000100 (bin) Luego la representacin del nmero ser: 0100001001010101 _ \_______/\______/ Sig Expon Mantisa Ojo en algunos exmenes los posibles resultados los dan en Hex. As que lo pasas de binario a Hex. Luego la solucin es 4255 (hex)
Ejemplo 2:
Demetrio Quirs
Este problema es del examen del 26 de Enero de 1999 de ETC-1 (Modelo B - Pregunta 15): Obtener la representacin del nmero decimal (0.00015) en el formato normalizado IEEE754 para coma flotante de 16 bits (igual que el de 32, pero con una mantisa de 7 bits) A) 377B B) B77D C) B91D D) 377D
Empezaremos por calcular el equivalente de -0.00015 en formato m*2^e. El procedimiento que yo sigo es dividir el nmero por 2 elevado a 'lo que sea' hasta que el resultado est en la forma 1.xxxx, en este caso: -0.00015 / 2^-13 = 1.2288, con lo que podemos decir que 0.00015 = 1.2288 * 2^-13, con lo que ya tenemos la mantisa y el exponente.
Signo: negativo = 1 Exponente: 127 - 13 = 114 = 01110010 Mantisa: [1.]2288 = [1.]0011101 Con lo que el resultado es 1011 1001 0001 1101 B 9 1 D
Ejemplo 3:
Ramn Quiones Lozano
Cul es el error, en valor absoluto, que se comete al representar el nmero decimal 291.072 con el nmero en formato IEEE754 (16 bits) 4391? Primero pasamos el nmero hexadecimal a binario: 4391 hex = 0100 0011 1001 0001
y convirtindolo queda: signo (0) -> positivo exp. (10000111) = 135 (quitando el exceso a 127) 135-127 = 8 mantisa 1.0010001 (ojo al bit implcito) 1.0010001 decimal x 2^8 = 100100010 290 = = 290 en 1.072
As que el error =
291.072
Ejemplo 4:
Dethais
Convertir el nmero -2.5675e15 al formato IEEE 754 de 32 bits: 1 Se coge el n sin el menos, es decir positivo y escribimos lo siguiente: 2.5675*10^15 = 2^exponente Nos interesa despejar el "exponente". Cmo se hace esto? Con logaritmos: La expresin simplificada quedara: [log(2.5675)+15*log(10)]/log(2) = exponente Esto se hace con la calculadora y listo. Se puede hacer con logaritmos o con
logaritmos neperianos, lo que se prefiera. El exponente sale: exp = 51.189 (aproximamos al inmediatamente inferior, o sea al 51. Esto se hace siempre. Si fuera negativo, por ej. el -81.6, cogeramos el 82) Entonces, qu se ha conseguido con esto? Pues una aproximacin al n que nos dan. Para tener el n exacto entonces tendremos que hacer: 2.5675*10^15 = x*2^51 Calculamos 2^51 con la calculadora y nos sale: 2^51 = 2251799813685248 La x es el n que multiplica a nuestra "aprox. " para que d el n exacto (el 2.5675*10^15). Despejamos x y nos queda que: x = 2567500000000000/2^51=1.14019904629003576701 2 Ahora tenemos que pasar a binario el n 1.14. Lo bueno de este mtodo es que slo tienes que hallar la parte decimal del n (0.140199...) porque la parte entera es 1 y va a ser el bit implcito o el de ahorro para el IEEE754. 0.14019904629003576701(dec) = 0.00100011111001000001011(bin) Con esto se obtiene la mantisa, ahora calculamos el exponente. En la notacin IEEE754 el exponente se pone en exceso, por lo que: 2^(n-1)-1 + exponente = 2^7 - 1 + 51 = 127 + 51 = 178 3 Ahora se pasa todo a la notacin IEEE754: El primer bit es el de signo, como es negativo se pone un 1. Los siguientes 8 bits son los del exponente, por lo que ponemos el 178 en binario en esos 8 bits y el resto (23 bits) son la mantisa que recuerda que se pone con ahorro de bit, eso quiere decir que el primer bit significativo de la mantisa lo omitimos. Quedara as:
1 10110010 x00100011111001000001011 (en la x estara un 1, pero como es el bit implcito lo quitamos). Ahora agrupndolos de 4 bits en 4 bits tenemos el n en hexadecimal 1101 1001 0001 0001 1111 0010 0000 1011 D 9 1 1 F 2 0 B
Ejemplo 5:
Antonio Bello
Convertir el nmero -0.01 al formato IEEE 754 de 32 bits: 1 Se coge el n sin el menos, es decir positivo y escribimos lo siguiente: 0.01 = 2^exponente Nos interesa despejar el "exponente". Cmo se hace esto? Con logaritmos: La expresin simplificada quedara: log(0.01)/log(2) = exponente Esto se hace con la calculadora y listo. Se puede hacer con logaritmos o con logaritmos neperianos, lo que se prefiera. El exponente sale: exp = -6.643856... (aproximamos al inmediatamente inferior, o sea al 7. Esto se hace siempre. Si fuera positivo, por ej. el 81.6, cogeramos el 81) Entonces, qu se ha conseguido con esto? Pues una aproximacin al n que nos dan. Para tener el n exacto entonces tendremos que hacer: 0.01 = x*2^-7 Calculamos 2^-7 con la calculadora y nos sale: 2^-7 = 0.0078125
La x es el n que multiplica a nuestra "aprox. " para que d el n exacto (el 0.01). Despejamos x y nos queda que: x = 0.01/0.0078125=1.28 2 Ahora tenemos que pasar a binario el n 1.28. Lo bueno de este mtodo es que slo tienes que hallar la parte decimal del n (0.28) porque la parte entera es 1 y va a ser el bit implcito o el de ahorro para el IEEE754. 0.28(dec) = 0.0100011110101110000101000(bin) Con esto se obtiene la mantisa, ahora calculamos el exponente. En la notacin IEEE754 el exponente se pone en exceso, por lo que: 2^(n-1)-1 + exponente = 2^7 - 1 - 7 = 127 - 7 = 120 3 Ahora se pasa todo a la notacin IEEE754: El primer bit es el de signo, como es negativo se pone un 1. Los siguientes 8 bits son los del exponente, por lo que ponemos el 178 en binario en esos 8 bits y el resto (23 bits) son la mantisa que recuerda que se pone con ahorro de bit, eso quiere decir que el primer bit significativo de la mantisa lo omitimos. Quedara as: 1 01111000 x01000111101011100001010 (en la x estara un 1, pero como es el bit implcito lo quitamos). Ahora agrupndolos de 4 bits en 4 bits tenemos el n en hexadecimal 1011 1100 0010 0011 1101 0111 0000 1010 B C 2 3 D 7 0 A
Ejemplo 6:
Enrique Buitrn
Representar el nmero -480 a coma flotante IEEE754
Las opciones son: A) C3E0 B) C3A0 C) C3F0 D) C3B0 1/ Pasas 480 a binario: 480 = 111100000. 2/ Como la repr. IEEE754 tiene bit implcito, colocas la coma despus del primer 1, es decir: 1.11100000 Como hemos corrido la coma 8 posiciones hacia la izquierda, tenemos un exponente igual a 8. 3/ El exponente est en exceso, por lo que sumamos 2^7-1 + 8 = 135 4/ Lo representamos: El primer bit es el de signo, los 8 siguientes el exp, y los 7 restantes la mantisa. 1 10000111 1.1110000 ---> quitamos el bit implicito y ya nos queda la representacin: 1 10000111 1110000 = C 3 F 0
Ejemplo 7:
Francisco Javier Alonso lvarez
Convertir el nmero C19E0000 en formato IEEE754 en su equivalente decinmal: Primero paso hexadecimal a binario C19E0000 = 1100 0001 1001 1110 0000 0000 0000 0000 s (1) exponente (10000011) mantisa (001 1110 0000 0000 0000 0000) la formula es (-1)^s * 1,mantisa * 2^(e-127) s (1) significa, por tanto, signo negativo exponente 10000011 es 131, como se representa en exceso a 2^(n-1)-1 hay que restar 127 para volver a tener el exponente real, es por tanto 4. mantisa (hacia la derecha se van multiplicando los bits por 2^-1, 2^-2, 2^-3, 2^-4, ...)
0*0,5 0*0,25 1*0,125 1*0,0625 1*0,03125 1*0,015625 ----------0,234375 en decimal como est normalizada (se supone un 1 a la izquierda de la coma) es en realidad 1,234375. Todo junto: (-1)^1* 1,234375 * 2^4 = -1,234375*16 = -19,75
Ejemplo 8:
Antonio Bello
Se desea normalizar el nmero fraccionario N=1000011000111010 representado en signo-magnitud sobre una palabra de 16 bits. El byte ms significativo contiene la parte entera con signo,y el byte menos significativo la fraccionaria. Normalizarlo segn la IEEE754, para 16 bits. Es decir: Parte Entera: 10000110 (bin) = -6 Parte Fracc.: 00111010 (bin) = 0,2265625 Si utilizamos el conversor de la pgina http://www.etsimo.uniovi.es/~antonio/uned/ieee754/IE EE-754.html sabemos que la solucin tendra que ser: C0C7 (IEEE754) --1) Calcular el signo: Vamos ahora paso a paso. Lo primero es quitar el signo que ya sabemos que es negativo, entonces el nmero a normalizar sera: 110,00111010 2) Normalizacin de la mantisa: Como es el formato IEEE 754 hay un bit implcito. Esto quiere decir que vamos a correr la coma hasta el primer uno pero en lugar de dejarla a su
izquierda como se hace en otros formatos lo dejamos a la derecha (especfico para IEEE 754). Dicho bit implcito no ser representado, con lo que ganamos un bit ms en la precisin de la mantisa. Esto es: corremos coma 1,10,00111010 ^__|
la hemos corrido +2 posiciones. Lo tendremos en cuenta para despus. el bit implcito no lo representamos en la mantisa, luego cogemos los 7 bits siguientes a la coma Mantisa: 1000111 3) El exponente: se calcula en base al exceso 2^(n-1) -1 (especfico de IEEE 754) Entonces tenemos : +2 (de la coma corrida) + 2^(n1)-1=129= 10000001 (bin) Luego la representacin del nmero ser: 1 10000001 1000111 _ \______/ \_____/ Sig Expon Mantisa Ojo en algunos exmenes los posibles resultados los dan en Hex. As que lo pasas de binario a Hex. Luego la solucin es C0C7 (hex)
Ejemplo 9:
Antonio Bello
Expresar en formato binario de coma flotante de 32 bits, segun el estndar IEEE 754 el siguiente nmero decimal: -1023 * 10 ^ 24 1 Se coge el n sin el menos, es decir positivo y escribimos lo siguiente: -1023*10^-24 = -1.023*10^-21 = 2^exponente Nos interesa despejar el "exponente". Cmo se hace esto? Con logaritmos: La expresin simplificada quedara: [log(1.023)-21*log(10)]/log(2) = 69,713436319769198378217218273857
Esto se hace con la calculadora y listo. Se puede hacer con logaritmos o con logaritmos neperianos, lo que se prefiera. El exponente sale: exp = -69,72 (aproximamos al inmediatamente inferior, o sea al 70. Esto se hace siempre. Si fuera positiva, por ej. el 81.6, cogeramos el 81) Entonces, qu se ha conseguido con esto? Pues una aproximacin al n que nos dan. Para tener el n exacto entonces tendremos que hacer: -1.023*10^-21 = x * 2^-70 Calculamos 2^-70 con la calculadora y nos sale: 2^-70 = 8,4703294725430033906832250067964e-22 La x es el n que multiplica a nuestra "aprox. " para que d el n exacto (el -1.023*10^-21). Despejamos x y nos queda que: x = -1.023*10^-21/2^-70 = 1,207745227993911763402752 2 Ahora tenemos que pasar a binario el n 1.20774..... Lo bueno de este mtodo es que slo tienes que hallar la parte decimal del n (0.207745...) porque la parte entera es 1 y va a ser el bit implcito o el de ahorro para el IEEE754. 0.207745227993911763402752(dec) = 0.00110101001011101100101(bin) Con esto se obtiene la mantisa, ahora calculamos el exponente. En la notacin IEEE754 el exponente se pone en exceso, por lo que: 2^(n-1)-1 + exponente = 2^7 - 1 + -70 = 127 - 70 = 57 3 Ahora se pasa todo a la notacin IEEE754: El primer bit es el de signo, como es negativo se pone un 1. Los siguientes 8 bits son los del exponente, por lo que ponemos el 57 en binario en esos 8 bits y el resto (23 bits) son la mantisa que recuerda que se pone con ahorro
de bit, eso quiere decir que el primer bit significativo de la mantisa lo omitimos. Quedara as: 1 00111001 x 00110101001011101100101 (en la x estara un 1, pero como es el bit implcito lo quitamos). Ahora agrupndolos de 4 bits en 4 bits tenemos el n en hexadecimal 1001 1100 1001 1010 1001 0111 0110 0101 9 C 9 A 9 7 6 5