Guia Trabajos Prácticos Nº 1 -arquitectura de la computadora

20
ARQUITECTURA DE LAS COMPUTADORAS Guía de Trabajos Prácticos Nº 1 “Sistemas Numéricos” Profesores: Ing. Rafael E. Fuentes. Ing Edgardo G. Chapur Ingeniería en Sistemas.

description

Descripcion de trabajos realizados en clase

Transcript of Guia Trabajos Prácticos Nº 1 -arquitectura de la computadora

TRABAJO PRACTICO N 1

ARQUITECTURA DE LAS COMPUTADORAS

Gua de Trabajos Prcticos N 1

Sistemas Numricos

Profesores: Ing. Rafael E. Fuentes.Ing Edgardo G. Chapur

Ao 2013

OBJETIVOS:En la presente gua de trabajos prcticos se presentan una serie de ejercicios resueltos y propuestos de operaciones utilizando distintos sistemas numricos. El objetivo de esta gua es que el alumno utilice estos trabajos prcticos a n de comprender la representacin de la informacin numrica en distintas bases y la utilizacin de las operaciones bsicas.Para profundizar estos temas puede remitirse a la bibliografa:MEINADIER, J. P., Estructura y Funcionamiento de los Computadores Digitales. Ed. AC.1.975BARTEE, T. C., Fundamentos de computadores digitales. Ed. Mc GrawHilI. 1.986GINZBURG, M.C. Algebra de Boole aplicada a circuitos de Computacin y codicacin de nmeros.Ed. Biblioteca Tcnica Superior - Bs. As. 1.996

PASAJE DE BASE POR DESCOMPOSICIN POLINMICA EJERCICIOS RESUELTOS:Los pasajes entre bases se pueden realizar utilizando la descomposicin polinmica del nmero.Por ejemplo, pasar el nmero 2301 de base 4 a base 10 utilizando descomposicin polinmica implica tomar cada dgito decimal y multiplicarlo por la base a la que se quiere pasar (en este caso 4) elevada a la posicin que ocupa el dgito, es decir:

2x43+3x42+0x41+1x40=177

Nota: las posiciones de los dgitos se numeran de derecha a izquierda desde 0.Para realizar el proceso inverso (de base 10 a cualquier base) se utiliza el mtodo de las divisiones sucesivas. Este mtodo consiste en tomar el nmero en decimal y hacer Ia divisin ENTERA utilizando la base a la que se quiere pasar. Para el ejemplo anterior, si se quiere pasar el nmero 177 a base 4 se tiene:177/4 = 44; Resto = 144/4 = 11; Resto=011/4 = 2; Resto=32/4: 0; Resto=2Las divisiones se realizan hasta obtener como cociente el nmero 0. Para reconstruir el nmero en base 4 se toman los RESTOS obtenidos desde el ltimo hasta el primero, es decir:177= 2301(4Nota: Recuerde que para los resultados obtenidos sean vlidos, ningn dgito puede alcanzar el valor de la base, es decir, en el ejemplo anterior, ninguno de los dgitos obtenidos alcanza el valor 4.Esto mismo se puede hacer para cualquier base, suponiendo que se quiere pasar el nmero 177 a binario, se obtendra:

177/2 = 88; Resto: 188/2 = 44; Resto=044/2 = 22; Resto=022/2 == 11; Resto=011/2 = 5; Resto=15/2 = 2; Resto: 12/2 = 1; Resto=01/2= 0; Resto=1Reconstruyendo se obtiene el resultado siguiente:177 = 10110001(2Si elige otra base, por ejemplo base 7, debe realizar el mismo procedimiento teniendo en cuenta que para las divisiones sucesivas debe utilizar esa base. Es decir, si se quiere pasar a base 7 debe hacer las divisiones sucesivas con divisor 7.

Nota: El mtodo de pasaje por divisiones sucesivas se hace solo de sistema decimal a cualquiera de los otros sistemas, a menos que opere en la base a la que quiere pasar. Es decir, si desea pasar el nmero 177(8, a base 4 debe operar en base 8.

177(8/4(8 = 37(8; Resto = 337(8/4(8 = 7(8; Resto = 37(8/4(8 = 1(8; Resto = 31(8/4(8 = 0(8; Resto = 1177(8 = 1333(4Para comprobar podemos aplicar la descomposicin polinmica y pasar ambos valores a decimal:177(8= 1x82+7x81+7x80=1271333(4=1x43+3x42+3x41+3x40=127

EJERCICIOS PROPUESTOS:Dados los siguientes nmeros en las bases indicadas, pasarlos a base 10 (decimal). Luego transformar el nmero resultante a base binaria.01. 2301(401. 53,11(603. -412(804. 25AB(1605. 7AC(1605. FFF(1607. ABF(1608. FE016O9. 11010001(210. 732(811. 7AC(1612. 11001100101010(2Dados los siguientes nmeros en sistema decimal, convertirlos a las bases: 2, 7, 8, 16 expresando de forma ordenada en una tabla.01. 187402. -31203. 8504. 82405. 51206. 25607. 1500

PASAJE DIRECTO DE BASESEJERCICIOS RESUELTOS:El pasaje directo es un procedimiento que se puede realizar solamente entre bases que, elevndolas a alguna potencia entera, dan como resultado otras bases. Por ejemplo, si tenemos un nmero en base 3, podremos utilizar el procedimiento de pasaje directo a base 9 (32) o base 27 (33) o cualquier base que sea potencia de 3. Si tenemos un nmero en base 2 podremos utilizar este mecanismo para pasarlo a base 4 (22), base 8 (23) o base 16 (24) o cualquier base que sea potencia de 2.

Esto signica que podremos hacer el pasaje desde:B1k = b2Donde k representa la potencia de b1.Si se tiene el nmero 11100011110011(2 y se lo quiere pasar a base 8 (23) el procedimiento es el siguiente:23=8k=3El valor de k determina que del nmero original se deben hacer grupos de 3 digitos comenzando desde la derecha del nmero es decir:11100011110011

Note que el ltimo grupo solamente tiene dos digitos por lo que debe completarse con ceros.011100011110011

Con esta agrupacin se determina cul es el valor de cada grupo en la base a la que se quiere pasar, en este caso 8.011100011110011

34363

11100011110011(2=34366(8

Si tenemos un nmero en una base mayor que otra, tambin se puede aplicar el pasaje directo, siempre y cuando la base menor elevada a alguna potencia sea igual la base mayor. Es decir, si tenemos un nmero en base 16 se puede pasar a base 2 (24).

En este caso, el procedimiento es inverso, se toma cada dgito de la base mayor y se lo descompone en tantos dgitos como indica el valor de k (en nuestro ejemplo k = 3). El nmero 34363(8, lo podemos pasar a binario haciendo:34363

011100011110011

34363(8 = 11100011110011(2

Nota: En ningn caso, alguno de los dgitos del resultado debe alcanzar el valor de la base.Otro ejemplo: pasar 34025(9 a base 3.9 = 32 k = 2Para este caso k indica que cada dgito en base nueve debe descomponerse en 2 dgitos de base 3 (este caso corresponde al pasaje de una base mayor a una menor). Por ende, se tiene que:34025

1011000212

Resultando:34025(9 = 1011000212(3Tenga en cuenta la condicin de la potencia entre bases. Esto quiere decir que no se puede aplicar pasaje directo de base 8 a base 16, porque no existe una potencia de 8 que d como resultado 16 (este error suele ser comn, al confundir potencia con mltiplo). Lo que se puede hacer en este caso es usar una base intermedia. Por ejemplo pasar 37025(8 a base 16:8k = 16 no existe valor entero para kPero en este caso se cumple que:8=23k=3Y24=16k=4Entonces se puede aplicar dos veces el procedimiento de pasaje directo, primero para pasar de base 8 a binario con k = 3:37025

011111000010101

37025(8 = 0111110000101001(2

Ahora aplicamos el pasaje de binario a hexadecimal, pero con k = 4 en este caso:0011111000010101

3E15

Resultando:0111110000101001(2 = 3E15(16Resumiendo: 37025(8 = 3E15(16

EJERCICIOS PROPUESTOS:

Realizar las conversiones indicadas utilizando las propiedades de las bases (b1k = b2)01. 34025(9 a base tresO2. AB4(16 a base dos03. 347(8 a base dos04. 1200(3 a base nueve05. 110010101100010(2 a base diecisis06. 1011110101011(2 a base ocho

Pasar los siguientes nmeros a la base indicada de forma directa (b1 = b2k):De Hexadecimal a Binario:01. ABAC(1602. FAC(1603. C1A(1604. 111(1605. 8A2(1606. 4B(16

De Octal a Binario:01. 470(802. 111(803. 220(804. 40(8OS. 3120(806. 654(8

De Binario-a octal y a Hexadecimal:01. 11110001(202. 10100111(203. 11101000110(204. 1000001(205. 1000000100(2De hexadecimal a octal y a base 4:01. 12AB(1602. BAAB(1603. 1C4B(1604. 7777(16

OPERACIONES ARITMTICAS EN DIFERENTES BASES:Las operaciones aritmticas pueden ser abstradas de la base que se est utilizando. Esto signica que independientemente de la base con la que se opere, los procedimientos son los mismos, solamente se debe tener cuidado con la representacin de los nmeros.De esta manera, utilizando sistemas numricos posicionales, la suma, la resta, la multiplicacin, divisin y las dems operaciones se realizan teniendo en cuenta los mismos algoritmos utilizados en decimal.A partir de aqu se muestran algunos ejemplos y se proponen algunos ejercicios para realizar con distintas bases.

EJERCICIOS RESUELTOS:Resoluciones de operaciones aritmticas en diferentes bases numricas:Binario (suma)11101(210111(2110100(2

Binario (multiplicacin)1001(2x11(21001(21001(211011(2

octal (suma)227(8522(8751(8

octal (multiplicacin)222(8x127(817767(84442(82221(8306507(8

EJERCICIOS PROPUESTOS:Realizar las siguientes operaciones aritmticas en los sistemas numricos indicados y verificar los resultados usando el sistema decimal.

Binario01. 1011101 + 110011102. 11101 + 1011103. 11101 + 10101 + 1011104. 1001 - 1001005. 1011 - 1010110106. 1010111 * 101107. 111 * 10108. 1001 * 1109. 1011101011010 / 11010. 111001001 / 10111. 1010 / 1012. (111001 + 1010) / 11113. (110011 * 11) - 100010

Octal01. 1532 + 12502. 227 + 52203. 771 + 231 + 11104. 2121 - 534205. 2543 -175606. 10217 * 74307. 2221 * 12708. 2323 / 4309. 56 / 310. (127 + 415) - 51211. (124 * 16) / 12

Base doce01. 5689 + 14A4202. 4A2 - 903. 89A3 - 1804. 145 * 2A05. A21219 / 7

Hexadecimal01. ABC32 + 158202. A741 - 7F1403. 5A3 / 704. AAF + BCD105. 9482 * 1406. A14 - F1407. 12 + 14F508. 23AF56 / 3B09. (F141 -A71) + B13410. (FA01 + 127) / A

COMPLEMENTO A LA BASE Y A LA BASE MENOS UNO

EJERCICIOS RESUELTOS:Las operaciones de complemento a la base y complemento a la base menos uno (o tambin llamado complemento restringido) son de gran utilidad a la hora de implementar circuitos para la resta de dos nmeros, divisin, etc.A continuacin, se explica el concepto y se desarrollan algunos ejemplos que sern utilizados en el estudio de la unidad aritmtico lgica de las computadoras.El complemento de un nmero a de n dgitos (en cualquier base) se dene como:comp(a) = 10n - aDonde 10 representa la base (este valor siempre es 10 para todas las bases).Es decir, el complemento del nmero 27 se calcula:comp(27) = 102- 27 = 100 - 27 = 73de la misma manera, el complemento de 27(8 es:comp(27(8) = 10(82 27(8 = 100(8 27(8 = 51(8Debido a que en cualquier base 10n resulta un 1 seguido de n ceros, cuando se calcule el complemento de un nmero, se generar en la resta al menos el arrastre en el dgito de menor peso. Para evitar esta operacin, que a veces puede ser compleja de implementar, se utiliza lo que se dene como complemento a la base menos uno.Hallar el complemento a la base menos uno de un nmero diere del proceso anterior en que antes de realizar la resta, se decrementa una unidad a la base elevada a la cantidad de digitos, es decir:compRest(a) = (10n - 1) - aPara los ejemplos utilizados se tiene:compRest(27) = (102 - 1) - 27 = 99 - 27 = 72compRest(27(8) = (10(82 1(8) 27(8 = 77(8 27(8 = 50(8Para hallar el complemento a la base, se utiliza el resultado del complemento a la base menos uno y se suma 1. La ventaja, como se puede apreciar en los ejemplos anteriores es que en la resta no se genera ningn acarreo. Esto es beneficioso a la hora de implementar las operaciones en la unidad aritmtica lgica.Una forma prctica de hallar el complemento a la base menos uno (en cualquier base) es, dado un nmero cualquiera, preguntar cunto le falta a cada dgito para llegar al valor mximo en esa base es decir:compRest(27) = 72ya que al valor 7 le faltan 2 para llegar a 9 (mximo valor de un dgito en decimal) y al valor 2 le faltan 7 para llegar a 9. De la misma manera:compRest(27(8) = 50(8porque al valor 7 le faltan O para llegar a 7 (mximo valor de un dgito en octal) y al valor 2 le faltan 5 para llegar a 7.Un caso particular es el sistema binario, en el que el clculo del complemento restringido consiste en cambiar ceros por unos y unos por ceros, ya que a un bit 1 le falta 0 para llegar al valor mximo en binario y al bit 0 le falta 1 para llegar al valor mximo en binario. Esto es:compRest(1000101010(2) = 0111010101(2Para hallar el complemento a la base simplemente se debe sumar uno al complemento restringido y de esta manera se evitan los acarreos en las restas.Nota: En el sistema binario inclusive no hace falta hacer ninguna operacin de resta, pues para hallar el complemento de un nmero se cambian ceros por unos y unos por ceros y se suma uno.

Ahora bien, la verdadera utilidad del complemento de un nmero (nuevamente, en cualquier base) es que posibilita implementar la operacin de resta mediante sumas. Volvamos a la expresin:Comp(a) = 10n - aHaciendo un simple pasaje de trminos tenemos que: a = comp(a) 10nY nalmente tenemos queb - a = b + comp(a) 10nAhora bien, supongamos que necesitamos realizar la diferencia:485 - 34 = 451Lo que podemos hacer es reemplazar -34 por su complemento. Para ello debemos completar los nmeros hasta contar con la misma cantidad de digitos en cada uno (034):compRest(034) = 965Y luego sumamos uno obteniendo 966. Con el complemento calculado se lo sumamos al minuendo:485 + 966 = 1451

Podemos observar que el resultado est excedido en 10" con n = 3, por lo que debemos restar ese nmero al resultado, pero lo destacado es que esa resta implica solamente eliminar el 1 de mayor peso. Esto sucede siempre en todas las bases siempre y cuando el minuendo sea mayor que el sustraendo. Veamos que sucede cuando el minuendo es menor que el sustraendo:34 - 485 = -451En este caso 485 ya tiene la cantidad de dgitos mxima, por lo que no debe ser completado con ceros antes de calcular el complemento. Es decir:compRest(485) = 514 Sumando uno tenemos 515 que es el complemento a la base del sustraendo. Si sumamos este valor al minuendo tenemos:034 + 515 = 549Ahora debemos restar 10n con n = 3. En este caso no tenemos para eliminar el uno de mayor peso por lo que debemos hacer la resta, pero aqu hay una cuestin destacable que es que esa resta implica hallar el complemento del resultado nuevamente:compRest(549) = 450Sumando 1 tenemos 451, que es el resultado verdadero de la resta, en este caso y por convencin debemos agregar el signo menos adelante resultando:-451Tambin se puede trabajar con una representacin con complementos de los nmeros negativos. Para ello se debe establecer la cantidad de dgitos del nmero y reservar el dgito de mayor peso para el signo. Siendo 0 para signo positivo y 9 para negativo (siempre se toma el mayor valor de un dgito en la base que se est trabajando).Para nuestro ejemplo anterior:34 - 485 =? ? ? ?Primero completamos la cantidad de dgitos para el nmero, en este caso 3 y el dgito de mayor peso para el signo. Como son positivos ambos resulta:0034- 0485 =? ? ? ?Hallamos el complemento del sustraendo:compRest(0485) = 9514comp(0485) = 9515

Sumamos al minuendo:0034 + 9515 = 9549Que es el resultado nal negativo (recuerde que el primer dgito establece el signo, en este caso negativo).Para comprobar el resultado podemos complementario y ver qu se obtiene:compRest(9549) = 0450comp(9549) = 0451Qu justamente es el valor positivo del resultado original. En denitiva, cuando se trabaja con formato de complemento para los negativos, no debe volver a complementar el resultado.Ahora bien, en binario se aconseja trabajar con la representacin por complemento de los nmeros negativos. Para ello SIEMPRE se debe definir la cantidad de digitos correspondientes al nmero y se reserva uno bit para el signo, siendo cero para los positivos y uno para los negativos. Veamos el siguiente ejemplo (tres bits para el nmero y uno para el signo): 0111(2 - 0101(2 = 0010(2Si utilizamos la resta por complementos tenemos (cambiando ceros por unos y unos por ceros ysumando 1):comp(0101(2) = 1011(2Ahora hacemos la suma0111(2 + 1011(2 = 10010(2Resultado que est excedido en 10(24, por ende podemos eliminar el primer bit, resultando:0010(2Nota: el bit de signo es el bit 3 (recuerde que los bits se numeran de derecha a izquierdacomenzando desde 0).Veamos que sucede si el resultado es negativo:0101(2 0111(2 =?? ?? (2Si hallamos el complemento del sustraendo tenemos:comp(0111(2) = 1001(2Sumando al minuendo:0101(2 + = 1110(2

Como sucediera con el ejemplo en decimal si complementamos el resultado obtenemos el valor positivo.comp(1110(2) = 0010(2Aqu aparece una cuestin muy importante, cuando se trabaja con representacin complementada de los valores negativos y la cantidad de dgitos es igual en el minuendo y el sustraendo, despus de hacer la resta por complementos, NO SE DEBE COMPLEMENTAR EL RESULTADO ya que esa es la representacin del valor de la resta. Para nuestro ejemplo:0101(2 0111(2 = 1110(2

EJERCICIOS PROPUESTOS:Hallar el complemento a la base y a la base menos uno de los siguientes nmeros:01. 1011101101(202. 174AB23(1603. 3524(804. 10001010(2Realizar las siguientes restas, en el sistema binario utilizando el complemento a la base (recuerde definir si trabaja con representacin complementada de los negativos o si utiliza signo y dgito).01. 11011011(2 11100011(202. 1110001(2 - 100100101(203. 110101011(2-101010(204. 101100(2 11101110(205. 10110101(2 1010101(206. 101011(2 11100111(2Restar en sistema binario usando complemento a la base menos uno.01. 10111101(2 1101010(2O2. 1110001(2 1001001011(203. 110101011(2 101010(204. 101100(2 - 11101110(205. 10110101(2 - 1010101(206. 101011(2 11100111(2

Ingeniera en Sistemas.