You are on page 1of 7

1.

- Representacin en Coma Flotante con Simple


Precisin (IEE-754):
-Bueno, pues analizado en la parte anterior del tema todo sobre la coma fija
(representacin de n enteros), pasamos en esta parte al estudio sobre la
representacin en coma flotante, es decir, la asociada a los n reales para la arquitectura
IEE-754. As, cabe destacar tambin como apuntes previos a su estudio lo siguiente:

Su representacin no es exacta, sino aproximada (la cual depende de la precisin


que utilicemos: Simple Precisin o Doble Precisin) por lo que habr que aplicar
(cuidadosamente) tcnicas de redondeo.
La representacin en coma flotante es + compleja que en coma fija
(debido a que IR > ), siendo necesario incorporar en el microprocesador
coprocesadores de coma flotante.
-Dicho esto, pasaremos a continuacin al anlisis de su aritmtica. A diferencia de la
representacin en coma fija, en coma flotante (al tratarse de n reales (incluyen decimales)
la representacin debe ser en notacin cientfica, la cual debe ser del siguiente modo:

Todo n (x) debe representarse en funcin de su signo (s), Mantisa (q)


y Exponente (e), de la forma:

*x: n real a representar


x = q Be *q: mantisa (n en forma de notacin)
*B: base de la notacin (normalmente 2)
*e: exponente de la notacin.
Dicha notacin cientfica hay que normalizarla, para lo cual hay que dejar
siempre a la izquierda de la coma de la mantisa (q) un 1 (Ej: 01001 = 0,1001 24
(sin normalizar) = 1,001 23 (normalizado)), el cual (1) no se almacena (ya que
siempre va a ser 1) pasando a denominarse bit implcito. En sistema decimal
(donde B = 10) sucede igual, hay que dejar a la izquierda de la coma un n 0
(232 = 0,232 103 () = 2,32 102 ()).
En precisin simple, la representacin es de 32 bits los cuales se dividen en:
Signo 1 bit (0 para + y 1 para )
Mantisa 23 bits (+ el bit (1) implcito)
Exponente 8 bits (se expresa en binario sesgado (E), es decir:
E = S + e = 2(e-1) 1 + e (Ej: con 8 bits (e), el sesgo es 28-1 1 = 127;
y E = 127 + 8 (e) = 135). Adems, comparando los valores de E (exponente
sesgado) de distintos n podemos (sin necesidad de pasar a otro sistema)
comparar su valor (cual es > o <, etc.).

Pasar el n N = -0,75 de base 10 a IEE 754 con precisin simple:


(*) Para ello seguiremos los siguientes pasos:
Pasamos el n de sistema decimal a sistema binario:
0,7510 0:2 = 0 (Resto 0), 7:2 = 3 (Resto 1), 5:2 = 2 (Resto 1) 0,112
Normalizamos:
0,11 1,121
Calculamos el exponente sesgado:
E = S + e = 2(e-1) 1 + e = 28-1 1 + ( 1) = 127 1 = 12610 = 011111102
Calculamos la mantisa:
1,12 1 [m (mantisa) = 1] m = 1,10000000000000000000000 (como
sabemos el bit de detrs de la coma no se almacena, por lo que podemos precisar
la mantisa con los 23 bits disponibles (se completa con 0 hasta llegar a 23 bits)).
Determinamos el bit del signo:
S = 1 (es 1 ya que el n es negativo)
Definimos el n en notacin cientfica binaria y lo pasamos finalmente a
hexadecimal:
S=1
E = 01111110 1011 1111 0100 0000 0000 0000 0000 0000
m = 10000000000000000000000
*1011 1111 0100 0000 0000 0000 0000 00002 0xBF400000
Pasar el n N = C0A00000 de base hexadecimal a IEE- 754 con precisin simple:
(*) Para ello seguiremos los siguientes pasos:
Pasamos el n de sistema hexadecimal a sistema binario:
C0A0000016 = 1100 0000 1010 0000 0000 0000 0000 00002
Identificamos los distintos elementos:
s = 1 (n )
E = 100 0000 1
m = 010 0000 0000 0000 0000 0000
Pasamos la m y e a sistema decimal:
*1.0100000 0000 0000 0000 00002 = 120 + 02-1 + 12-2 + 02-3 + (0) = 1,25
*e = E S = 1000 00012 28-1 1 12910 12710 = 2
De este modo a partir de lo obtenido anteriormente dicho n (en decimal) es:
s=
m = 1,25 N = 1,25 22 = 5
E = 22 (B = 2 y e = 2)

En precisin doble, la representacin es de 64 bits los cuales se dividen en:


Signo 1 bit (0 para + y 1 para )
Mantisa 52 bits (+ el bit (1) implcito)
Exponente 11 bits (se expresa en binario sesgado (E) a 1023, es decir:
211 1 = 2047 (la mitad para los n + (1023) y la otra mitad para los (1023)).
(#) A diferencia de la precisin simple, permite mayor precisin en su representacin
necesitando para ello un > tamao de palabra (64 bits) para el almacenamiento.
-De este modo, podemos definir sobre la siguiente tabla donde distinguiremos los
siguientes casos de representacin en coma flotante:

Nmero (en s, m y E) Intervalo de exponente correspondiente


s = 1, q = 1,m y E = 2e - 127 0 < e < 255 (n normalizado)
s = 1, q = 0,m y E = 2- 126 e = 0 (n desnormalizado)
0 e=m=0
+ e = 255, m = 0 y s = 0
e = 255, m = 0 y s = 1
NaN (si no es 1 n) e = 255 y m 0
2.- Operaciones en Coma Flotante (IEE 754):
-Las operaciones en coma flotante de suma/resta y multiplicacin/divisin se
realizan del siguiente modo. Vemoslo:
Suma y Resta: en este caso:
Se igualan los exponentes al del n de > grado.
Se ajusta la mantisa del n <.
Se realiza la operacin de suma o resta.
-Dicho esto, veamos un ejemplo de cada caso:
Representa en coma flotante las siguientes operaciones: 9,99 10 1 + 1,610 10 1
y 9.9910 1 1,61010 1 :
9,99 10 1 + 1,610 10 1 :
Primero alineamos las mantisas (bases) de ambos n:
9,99 10 1 + 1,610 10 1 = 9,99 10 1 + 0,01610 10 1
Despus sumamos las mantisas de ambos n:
(9,99 + 0,01610)101 = 10,015101
Ahora normalizamos (si es necesario):
10,015101 = 1,0015102
Finalmente redondeamos el resultado:
1,0015102 1,002102
9,99 10 1 1,610 10 1:
Primero alineamos las mantisas (bases) de ambos n:
9,99 10 1 1,610 10 1 = 9,99 10 1 0,01610 10 1
Despus restamos las mantisas de ambos n:
(9,99 0,01610)101 = 9,9739101
Ahora normalizamos (si es necesario):
9,9739101 = 9,9739101 (no es necesario)
Finalmente redondeamos el resultado:
9,9739101 9,974101
Multiplicacin y Divisin: en este caso:
Se suman (multiplicacin) o restan (divisin) los exponentes.
Se realiza la operacin con las mantisas.
-Dicho esto, veamos un ejemplo de cada caso:
Representa en coma flotante las siguientes operaciones: 1,110 10 10 9,200 10 5
y 1,110 10 10 / 9,200 10 5:
1,110 10 10 9,200 10 5:
Primero sumamos los exponentes:
1010 10 5 = 1010+( 5) = 105
Despus multiplicamos las mantisas de ambos n:
1,110 9,200 = 10,212
Ahora normalizamos (si es necesario):
10,212105 = 1,0212106
Finalmente redondeamos el resultado:
1,0212106 1,021106
1,110 10 10 / 9,200 10 5:
Primero restamos los exponentes:
1010 / 10 5 = 1010 ( 5) = 1015
Despus dividimos las mantisas de ambos n:
1,110 / 9,200 = 0,1206
Ahora normalizamos (si es necesario):
0,12061015 = 1,2061014
Finalmente redondeamos el resultado:
1,2061014 1,211014
1 Indique el valor decimal y binario en IEE-754 del siguiente nmero hexadecimal
representado en IEE-754 de 32 bits: 0x3FE00000:
(*) Podemos elegir el orden de equivalencia que deseemos (lgicamente el + fcil). En
este caso, pasaremos de hexadecimal a sistema decimal y finalmente a binario. Vemoslo:
*0x3FE00000 3167 + 15166 + 14165 + 0(0) = 1.071.644.672 = 1,071644672 109
*1,071644672 109: para pasarlo a sistema binario recordamos los pasos a seguir:
Pasamos el n de sistema decimal a sistema binario:
1.071.644.67210 1111111110000000000000000000002
Normalizamos:
111111111000000000000000000000 1,11111111229
Calculamos el exponente sesgado (siempre sobre 8 bits):
E = S + e = 2(e-1) 1 + e = 28-1 1 + (29) = 127 + 29 = 156 = 100111002
Calculamos la mantisa:
1,11111111229 m = 11111111000000000000000
Determinamos el bit del signo:
S = 0 (es 0 ya que el n es +)
Definimos el n en notacin cientfica binaria:
S=0
E = 10011100 0100 1110 0111 1111 1000 0000 0000 0000
m = 11111111000000000000000

2 En base a las siguientes cifras: A = 0,4523104, B =0, 2115103 y C = 13,80; calcular:


a) A+B, A B, A B, A/B y pasar C a sistema binario:
a) En base a los estudiado anteriormente, pasaremos a realizar dichas operaciones:
A+B = 0,4523104 + 0, 2115103 = 4,523103 + 0,2115103 = (4,523+0,2115) 103 =
= 4,7345103 = 4,735103
A B = 0,4523104 0, 2115103 = 4,523103 0,2115103 = (4,523 0,2115) 103 =
= 4,3115103 = 4,312103
AB = 0,4523104 0, 2115103 [104103 = 104+3= 107; 0,4523 0, 2115 = 0,0956]
0,0956107 = 9,56105
A/B = 0,4523104 /0, 2115103 [104/103 = 104-3= 101; 0,4523 / 0, 2115 = 2,1385]
2,1385101 = 2,14101
C = 13,80 [Para pasar un n con punto decimal a binario se hace lo siguiente]:
Se pasa la parte entera del n (en este caso 13) a sistema binario:
13:2 = 6 (Resto 1), 6:2 = 3 (Resto 0), 3:2 = 1 (Resto 1), 1:2 = 0 (Resto 1) 1101
Se pasa la parte decimal a binario multiplicndola por 2, cogiendo la parte entera
resultante y volviendo a multiplicar la parte decimal obtenida hasta llegar a la
parte decimal inicial, es decir:
0,802 = 1,60 (se coge el 1), 0,602 = 1,20 (se coge el 1), 0,202 = 0,40
(se coge el 0), 0,40 2 = 0,80 (se coge el 0), 0,802 = 1,60 (se coge el 1)
[como vemos hemos llegado a la multiplicacin inicial, por lo que
paramos ah y cogemos los 0 y 1 en el orden en que los hemos obtenido] 11001
Finalmente unimos la parte entera obtenida con la decimal:
13,80 = 1101.11001

You might also like