Representación de Números Decimales
Transcript of Representación de Números Decimales
![Page 1: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/1.jpg)
Representación de Números Decimales95.57/75.03 ORGANIZACIÓN DEL COMPUTADOR
PEDRO IGNACIO MARTOS ([email protected])
1
![Page 2: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/2.jpg)
Contenido❑Introducción
❑Representación Punto Fijo
❑Representación Punto Flotante
❑Operaciones en Punto Flotante
2
![Page 3: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/3.jpg)
Introducción❑La representación de números enteros en distintos sistemas denumeración utilizando n dígitos se puede escribir en forma general como
dn-1 x bn-1 +…+ d1 x b1 + d0 x b0
Siendo dx un digito del sistema en la posición x, y b la base del sistema
❑Para una cierta cantidad de dígitos n, se pueden representar
0 a bn – 1 valores en el caso de enteros sin signo y
–bn-1 a bn-1 – 1 valores en el caso de enteros signados en la convención de complemento a la base
3
![Page 4: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/4.jpg)
Representación “Punto Fijo” (PFijo)❑Lo anterior puede generalizarse para representar números con parte decimal de la siguiente manera
❑dn-1 x bn-1 +…+ d1 x b1 + d0 x b0 + d-1 x b-1 +…+ d-m x b-m
Siendo m la cantidad de dígitos decimales disponibles.
❑La precisión de la parte decimal es 1/bm por lo que hay asociado un error de representación o redondeo
4
![Page 5: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/5.jpg)
Representación “Punto Fijo” (PFijo)❑A esta representación se la denomina “de punto fijo” ya que elpunto decimal ocupa un lugar fijo dentro de la cantidad de dígitosdisponibles para la representación. Hay n dígitos para la parte enteray m dígitos para la parte decimal
5
bn+m … bn+1 bn bm-1 bm-2 … b1 b0
N bits M bits
Punto fijo
![Page 6: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/6.jpg)
PFijo – Ventajas y Desventajas❑La ventaja de esta representación es que se puede utilizar el mismohardware o las mismas rutinas de software que se utilizan para realizaroperaciones con la representación de números enteros
❑La desventaja de esta representación es la relación entre precisión y rango,dada una cierta cantidad de dígitos (representación finita) hay una relaciónde compromiso entre el mayor numero que se puede representar (dado porlos dígitos asignados a la parte entera) y la precisión de la parte decimal(dada por la cantidad de dígitos asignados a la parte decimal).
❑Para representar números negativos también se utiliza la convención decomplemento a la base
6
![Page 7: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/7.jpg)
PFijo – Precisión ❑En el caso particular de una representación en base 2, senecesitan entre 3 y 4 dígitos binarios (3 o 4 bits) para lograruna representación con una precisión similar a un digitodecimal
0.0110 0.00000012 = 0.007812510
Cuantos mas bits se utilicen en la parte decimal, mayor serála precisión, pero habrá menos bits disponibles para la parteentera, por lo que se reduce el rango de númerosrepresentables
7
![Page 8: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/8.jpg)
PFijo – Rango ❑El rango representable para n bits en la parte entera y m bits en la parte decimal de números signados en complemento a la base es
– 2(n-1) a 2(n-1) – 2(-m)
❑Para 4 bits de parte entera (n=4) y 4 bits de parte decimal (m=4)
8
1 0 0 0 0 0 0 0 … 0 1 1 1 1 1 1 1
-2n-1 = -23 = -8 2n-1 - 2-m = 23 - 2-4 = 7,9375
![Page 9: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/9.jpg)
PFijo – Compromiso entre Rango y Precisión❑Ejemplo: dados 8 bits para representar un numero en punto fijo con signo en complemento a 2
❖Si usamos 4 bits para la parte entera y 4 para la parte decimal
Rango -8 .0000 a 7.9375 con precisión 1/16 = 0.0625
❖Si usamos 6 bits para la parte entera y 2 bits para la parte decimal
Rango -32.0000 a 31.75 con precisión 1/4 = 0.25
❖Si usamos 2 bits para la parte entera y 6 bits para la parte decimal
Rango -2.0000 a 1.984375 con precisión 1/64 = 0.015625
9
![Page 10: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/10.jpg)
PFijo – Suma ❑Ejemplos de sumas
0110.0101 (6.312510) (10110 entero)
+ 0001.1000 (1.500010) (2410 entero)
0111.1101 (7.812510) (12510 entero) NZVC=0000
1011.1101 (-4.187510) (-6710 entero)
+ 1101.0111 (-2.562510) (-4110 entero)
1 1001.0100 (-6.750010) (-10810 entero) NZVC=1001
10
![Page 11: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/11.jpg)
PFijo – Consideraciones ❑Este formato se utilizaba en DSPs (Digital Signal Procesors), queimplementaban una unidad de Punto Fijo en hardware; y en procesadoresde propósito general sin unidad de punto flotante (FPU)
❑Con la popularización de procesadores con FPU el formato comenzó acaer en desuso, pero resurgió en aplicaciones de IA porque permiterealizar cálculos con una precisión razonable a mucha mayor velocidadque utilizando una representación de punto flotante.
❑En IA se denomina Cuantización (Quantization) a la optimización quemapea un numero de 32 bits en Punto Flotante a un numero de 8 bits enPunto Fijo para aplicaciones en dispositivos con baja potencia de computo
❑En internet hay calculadoras que nos permiten ver con que precisiónestamos representando un numero en otra base dada una cierta cantidadde dígitos. Una de ellas esta en https://planetcalc.com/862/
11
![Page 12: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/12.jpg)
Punto Flotante (PFlotante)❑Un número en punto flotante se expresa como un numero decimal multiplicado por una base elevada a un exponente
±d0.d1d2d3d4…dp-3dp-2dp-1 x be
donde el número d0.d1d2d3d4…dp-3dp-2dp-1 se denomina significand y p es la cantidad de dígitos para representarlo.
❑También puede descomponerse como una suma de potencias
±(d0+d1.b-1+d2b-2+…+dp-1.b-(p-1)) x be (0 ≤ di < b)
❑El exponente e puede tomar valores entre emax y emin.
❑Teniendo en cuenta que puede haber bp valores distintos de significands y emax- emin+1 valores de exponente, un número en punto flotante se representa con
log2(emax-emin+1) + log2(bp) + 1 bit (de signo)
12
![Page 13: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/13.jpg)
PFlotante – Estándar IEEE 754
❑Signo: un bit; 1=Negativo, 0=positivo
❑Exponente: se utiliza un bias (desplazamiento); para z bits de exponente, el valor se calcula como:
Exponente Representación PF = (Exponente del número) + (2(z-1) – 1)
❑Mantisa: representación normalizada 1,xxxx; de manera que 1.0 < Mantisa < 2.0. De esta manera se consigue un bit adicional implícito
❑Se definen las operaciones básicas (suma y multiplicación) , el redondeo, y la representación de +infinito, -infinito entre otras cosas
13
MSB LSB MSB LSB
s e f
Signo Exponente Mantisa
![Page 14: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/14.jpg)
PFlotante – Estándar IEEE 754Ventajas de una representación estandarizada
❑Las distintas bibliotecas de software que operan con unarepresentación en PFlotante generan los mismos resultados
❑Distintas implementaciones de hardware generan losmismos resultados
❑Los resultados de las operaciones son independientes de la implementación
14
![Page 15: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/15.jpg)
PFlotante – Estándar IEEE 754Ejemplo:
15
![Page 16: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/16.jpg)
PFlotante – Estándar IEEE 754
16
![Page 17: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/17.jpg)
PFlotante – Estándar IEEE 754❑En el caso que el Exponente sean todos unos o todos ceros, la interpretación es distinta y depende del contenido del significand:
17
![Page 18: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/18.jpg)
PFlotante – Estándar IEEE 754Características del Estándar:
❑Cuando se redondea un resultado de medio camino al número de punto flotantemás cercano, toma el que es par
❑Incluye los valores especiales NaN, +infinito y –infinito
❑Utiliza números desnormalizados para representar valores menores que 1.0 x 2Emin
❑Redondea al valor más cercano por defecto, pero tiene además otros tres modosde redondeo
18
![Page 19: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/19.jpg)
Números denormalizados❑En muchos sistemas de punto flotante si Emin es el exponente más chico, un número menor a1.0 x 2Emin no puede ser representado. Por lo que si una operación presenta un valor así se lolleva a cero.
❑En el estándar IEEE los números menores a 1.0 x 2Emin son representados usando significandsmenores que 1 (es lo que se denomina como gradual underflow)
Ejemplo 1: se tiene el número x = 1.234 x 10Emin, con un significand de cuatro dígitos en base 10 .
❖Si se divide por 10, se redondea a 0.123 x 10Emin
❖Si se divide por 100, se redondea a 0.012 x 10Emin
❖Si se divide por 1000, se redondea a 0.001 x 10Emin
❖Si se divide por 10000, se redondea a 0.000 x 10Emin
19
![Page 20: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/20.jpg)
Números denormalizadosEjemplo 2: se tienen dos números con un significand de cuatro dígitos en base 10
x = 1.245 x 10Emin , y = 1.232 x 10Emin,
❑La operación x – y = 0 (sistema sin denormal)
❑La operación x – y = 0.013 x 10Emin (sistema con denormals)
20
![Page 21: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/21.jpg)
Parámetros de la representación IEEE 754
21
![Page 22: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/22.jpg)
Representación de valores extremos
22
![Page 23: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/23.jpg)
Operaciones en PFlotante: Multiplicación
23
❑Sean n1 y n2 dos números binarios en punto flotante:
n1 = s1 x 2e1 , n2 = s2 x 2e2
❑La multiplicación de estos dos números será:
n1 x n2 = (s1 x 2e1) x (s2 x 2e2) = (s1 x s2) x 2e1+e2
![Page 24: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/24.jpg)
Operaciones en PFlotante: Multiplicación❑Algoritmo de Multiplicacion:
1) Multiplicar los dos significands mediante una multiplicación entera, incluyendo el bit implicito
2) Redondear el Resultado
3) Calcular el nuevo exponente y el signo
24
![Page 25: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/25.jpg)
P A
X0 X1. X2 X3 X4 X5 X6 X7 g r s s s s s s
X1. X2 X3 X4 X5 X6 X7 g
Producto
Caso 1: X0 = 0
El bit más significativo de P es 0. Se desplaza P aizquierda un bit, introduciendo en P el bit g de A.
El bit más significativo de P es 1, Hacer s := s v r y r := g, y sumar 1 al exponente.
Multiplicación: Casos
X0. X1 X2 X3 X4 X5 X6 X7Caso 2: X0 = 1
25
![Page 26: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/26.jpg)
Operación: A x B
Operandos: A y B (23 bits, 6 de exponente)
A = 8323071
B = 2007961
A =
22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 1 1 1 1 0 1 0 1 0 0 0 1 1 1 0 0 1 1 0 0 1B =
22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Multiplicación: Ejemplo
26
![Page 27: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/27.jpg)
22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1A =
22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 1 1 1 1 0 1 0 1 0 0 0 1 1 1 0 0 1 1 0 0 1B =
Exponente A = 62 – Bias = 62 – 31 = 31
Mantisa A = 0,99998474121093
Signo A = 1
A = -1,99998474121093 x 231
Exponente B = 30 – Bias = 30 – 31 = -1
Mantisa B = 0,63905334472656
Signo B = 0
B = +1,63905334472656 x 2-1
Multiplicación: Ejemplo
27
![Page 28: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/28.jpg)
- Cálculo del exponente:
Exponente = Exponente A + Exponente B = 31 – 1 = 30
- Cálculo del producto de las mantisas (incluyendo el 1):
El bit más significativo del resultado es igual a 1, por lo tanto se
incrementa el exponente calculado anteriormente en 1:
Exponente = Exponente + 1 = 30 + 1 = 31
33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
X 1 1 0 1 0 0 0 1 1 1 0 0 1 1 0 0 1
1 1 0 1 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 1 0 1 1 1 0 0 0 1 1 0 0 1 1 1
Multiplicación: Ejemplo
28
![Page 29: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/29.jpg)
- Empaquetado del exponente:
Exponente = 31 + Bias = 31 + 31 = 62
- Cálculo del signo:
Signo A * Signo B = 1
- Resultado final:
5 4 3 2 1 0
1 1 1 1 1 0
22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
1 1 1 1 1 1 0 1 0 1 0 0 0 1 1 1 0 0 1 1 0 0 0
Multiplicación: Ejemplo
29
![Page 30: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/30.jpg)
Operación: A + B
Operandos: A y B (32 bits, 8 de exponente)
A = 1052770304
B = 1120403456
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0A =
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 1 0 0 0 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0B =
Suma: Ejemplo
30
![Page 31: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/31.jpg)
Exponente A = 125 – Bias = 125 – 127 = -2
Mantisa A = 0,5
Signo A = 0
A = +1,5 x 2-2
Exponente B = 133 – Bias = 133 – 127 = 6
Mantisa B = 0,5625
Signo B = 0
B = +1,5625 x 26
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0A =
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 1 0 0 0 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0B =
Suma: Ejemplo
31
![Page 32: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/32.jpg)
PASO 1
Si eA < eB intercambiar los operados.
Colocar el exponente del resultado tentativamente en eA
El eA es menor al eB por lo que intercambiamos los
operandos
B = +1,5 x 2-2A = +1,5625 x 26
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 1 0 0 0 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0A =
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0B =
Suma: Pasos
32
![Page 33: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/33.jpg)
Si eA < eB intercambiar los operados.
Colocar el exponente del resultado tentativamente en eA
Establecemos como exponente del resultado al del operando A:
exp = 6
Suma: Pasos
PASO 2
33
![Page 34: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/34.jpg)
Si los signos de los operandos son distintos reemplazar
el significand B por su complemente a dos.
Los signos de los operandos son iguales, por lo tanto
no se hace nada
PASO 3
Suma: Pasos
34
![Page 35: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/35.jpg)
23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Colocar el significand B (sB) en un registro de 24 bits y desplazarlo a la
derecha eA-eB posiciones (introduciendo 1’s si fue complementado en el
paso anterior).
Con los bits desplazados fuera del registro setear los flags g (bit más
significativo, r (siguiente bit) y s (restantes bits).
Se coloca el significand B (sB) en un registro de 24 bits
Suma: Pasos
PASO 4
35
![Page 36: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/36.jpg)
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
g r s s s s s s
Se desplaza el contenido del registro a derecha eA - eB posiciones (8 posiciones)
En el paso 2 no hubo complementación por lo que se rellena con 0’s
Suma: Pasos
Colocar el significand B (sB) en un registro de p bits y desplazarlo a la derecha
eA-eB posiciones (introduciendo 1’s si fue complementado en el paso anterior).
Con los bits desplazados fuera del registro setear los flags g (bit más
significativo, r (siguiente bit) y s (restantes bits).
PASO 5
36
![Page 37: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/37.jpg)
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
g r s s s s s s
Se desplaza el contenido del registro a derecha eA - eB posiciones (8 posiciones)
Suma: Pasos
Colocar el significand B (sB) en un registro de p bits y desplazarlo a la derecha
eA-eB posiciones (introduciendo 1’s si fue complementado en el paso anterior).
Con los bits desplazados fuera del registro setear los flags g (bit más
significativo, r (siguiente bit) y s (restantes bits).
PASO 6
37
![Page 38: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/38.jpg)
23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Calcular un significand preliminar S = sA + sB sumando sA al registro de 24 bits
que contiene sB.
Si los signos de los operandos A y B son diferentes, el MSB de S es 1, y no hubo
carry-out entonces S es negativo. Reemplazar S por su complemento a dos.
sA
sB
S
Los signos de los operandos son iguales por lo que el S queda como está
Suma: Pasos
PASO 7
38
![Page 39: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/39.jpg)
Desplazar S de la siguiente manera:
- Si los signos de los operandos son iguales y hubo carry-out en el paso 4 desplazar
S una posición a derecha, colocando en la posición más significativa un 1 (el
carry-out).
- Si no se cumple cualquiera de las condiciones anteriores desplazar S a izquierda
hasta que esté normalizado. En el primer desplazamiento introducir en el bit
menos significativo el valor de g, luego introducir 0’s.
Ajustar el valor del exponente de acuerdo a los desplazamientos realizados.
El número está normalizado
23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
1 1 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Suma: Pasos
PASO 8
39
![Page 40: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/40.jpg)
Ajustar r y s.
- Si S fue desplazado a derecha en el paso 5:
r := LSB de S antes del desplazamiento s := or(g, r, s)
- Si no hubo desplazamiento en el paso 5:
r := g s := or(r, s)
- Si hubo un sólo desplazamiento a izquierda en el paso 5 dejar r y s como están
- Si hubo dos o más desplazamientos a izquierda en el paso 5:
r := 0 s := 0
No hubo desplazamiento en el paso 5 por lo que:
r = g = 0 y s = or(r, s) = or(0, 0) = 0
Suma: Pasos
PASO 9
40
![Page 41: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/41.jpg)
Redondear S utilizando la tabla de modos de redondeo.
Si el redondeo provoca un carry-out, desplazar S a derecha y ajustar el exponente.
Luego de estos pasos se obtiene el significand del resultado de la operación suma.
Suma: Pasos
PASO 10
Modo de redondeo Signo del resultado ≥ 0 Signo del resultado < 0
- +1 si (r or s)
+ +1 si (r or s)
0
Más cercano +1 si (r and p0) or (r and s) +1 si (r and p0) or (r and s)
41
![Page 42: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/42.jpg)
Calcular el signo del resultado.
Si los operandos tienen el mismo signo, éste es el signo del resultado. En caso contrario el signo del
resultado depende de cuál de los operandos es negativo, si hubo un intercambio de operandos en el paso
1, y si S fue reemplazado por su complemento a dos en el paso 4 (ver tabla de signos)
Suma: Pasos
PASO 11
Swap Compl Signo Op1 Signo Op2 Signo resultado
Sí + - -
Sí - + +
No No + - +
No No - + -
No Sí + - -
No Sí - + +
42
![Page 43: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/43.jpg)
Calcular el signo del resultado.
Si los operandos tienen el mismo signo, éste es el signo del resultado. En caso
contrario el signo del resultado depende de cuál de los operandos es negativo, si hubo
un intercambio de operandos en el paso 1, y si S fue reemplazado por su complemento
a dos en el paso 4 (ver tabla de signos)
Ambos operando son positivos, por lo que el resultado de la operación de
suma será positivo
Suma: Pasos
PASO 12
43
![Page 44: Representación de Números Decimales](https://reader034.fdocuments.ec/reader034/viewer/2022042214/6259ab1557b652083a6fdfd8/html5/thumbnails/44.jpg)
Resultado Final
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 98 7 6 5 4 3 2 1 0
0 1 0 0 0 0 1 0 1 1 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Suma: Pasos
exp = 6 + BIAS exp = 10000101
signo = +
Resultado de la suma de los significands =
110010001100000000000000
44