Vous êtes sur la page 1sur 31

Estructura de computadores

Tema 2: Sistemas de representacin numrica

Tema 2: Sistemas de representacin numrica


2.1 Sistemas de Numeracin
Definiciones previas
Comenzaremos por definir unos conceptos fundamentales.

Existen 2 tipos de computadoras: Analgicas: actan bajo el control de variables continuas, es decir, que toman infinitos valores. Digitales: actan bajo el control de variables discretas, es decir, que pueden tomar un nmero finito de valores en el tiempo.

Las computadoras con las que vamos a tratar son digitales.

Sistema de numeracin: es un conjunto de reglas, signos y convenios que nos permiten expresar, verbal y grficamente, las cantidades de las magnitudes o valores numricos. Base de un sistema de numeracin: es el nmero de signos distintos que se emplean en el sistema. Alfabeto de un sistema de numeracin: son todos y cada uno de los signos que se emplean en el sistema. A partir de ellos se expresarn todas las cantidades.

Por ejemplo, el sistema de numeracin decimal utiliza diez dgitos: Base: 10 Alfabeto: 0,1,2,3,4,5,6,7,8,9.

Estructura de computadores

Tema 2: Sistemas de representacin numrica

Clasificacin
Los sistemas de numeracin se clasifican en: posicionales y no posicionales. 1. Sistemas posicionales En ellos, cada cifra de un valor numrico contribuye al valor final dependiendo de su valor y de la posicin que ocupa dentro de l (valor relativo). En estos sistemas tenemos tantos smbolos como la base del sistema. Los nmeros mayores que la base se representan por medio de varias cifras. El valor final ser la suma de una serie de potencias de la base del sistema (B): N = AnBn + A n-1Bn-1 + ... + A 1B1 + A 0B0 Donde A i son las distintas cifras del valor numrico e i su posicin. 2. Sistemas no posicionales Al contrario que en el caso anterior, en este caso la contribucin de cada cifra no depende del lugar que ocupa. Un ejemplo de este sistema seran los nmeros romanos: La combinacin XXI equivale a 21. Podemos ver cmo la cifra X aparece dos veces y siempre tiene el mismo valor: 10 unidades, independientemente de su posicin. El inconveniente que tienen estos sistemas es que para escribir valores numricos grandes son necesarios muchos smbolos, y adems resulta difcil efectuar operaciones aritmticas con ellos, cosa que no sucede con los posicionales.

Los sistemas de numeracin que veremos a continuacin son todos sistemas posicionales. A partir de ahora, para evitar confusiones, cuando expresemos un valor numrico pondremos un subndice al final indicando la base en la que se expresa dicho valor, salvo que por el contexto quede suficientemente claro: 22510 110112 = = Base decimal Base binaria

Estructura de computadores

Tema 2: Sistemas de representacin numrica

Sistema decimal
Es el sistema que utilizamos habitualmente las personas. Base: Alfabeto: 10 0,1,2,3,4,5,6,7,8,9

Cumple la frmula anterior (B=10): N = An10n + An-110n-1 + ... + A 1101 + A 0100 Ejemplo: 22510 = 2102 + 2101 + 5100 = 200 + 20 + 5

Estructura de computadores

Tema 2: Sistemas de representacin numrica

Sistema binario
Es el sistema utilizado por los computadores. Base: Alfabeto: 2 0,1

Este sistema, presenta el inconveniente de que necesita muchas cifras para la representacin de un nmero grande, y es muy engorroso para un humano. Sin embargo, el sistema binario es el ms adecuado a las mquinas electrnicas por varias razones: 1. La mayor parte de las computadoras existentes representan la informacin y la procesan mediante elementos y circuitos electrnicos de dos estados (rels, ncleos de ferrita, etc.). 2. Por la seguridad y la rapidez de respuesta de los elementos fsicos de dos estados diferenciados (ON / OFF). 3. Las operaciones aritmticas son sencillas. Los quince primeros nmeros binarios se escriben: Decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Binario 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

Estructura de computadores

Tema 2: Sistemas de representacin numrica

Conversin binario-decimal La forma ms sencilla de realizar esta conversin es desarrollando la frmula que vimos para los sistemas posicionales (suma de potencias de la base). N = AnBn + A n-1Bn-1 + ... + A 1B1 + A 0B0 Donde A i son las distintas cifras del valor numrico e i su posicin. B=2 Ejemplo 1: Dado el nmero binario: 10112, encontrar el equivalente decimal. Si desarrollamos el nmero dado como potencias de 2 tendremos: 10112 = 12 3 + 02 2 + 12 1 + 12 0 = 18 + 04 + 12 + 11 = = 8 + 2 + 1 = 1110 Ejemplo 2: Ahora vamos a realizar lo mismo pero con cifras decimales. Dado el nmero binario: 1011,0112, encontrar el equivalente decimal. 1011,0112 = 12 3 + 02 2 + 12 1 + 12 0 + 02 -1 + 12 -2 + 12 -3 = = 18 + 04 + 12 + 11 + 01/2 + 1 + 11/8 = 11,375

Conversin decimal-binario Una forma de realizar esta conversin sera separar la parte entera de la parte fraccionaria, y operar del siguiente modo: 1. La parte entera se divide tantas veces como sea posible por la base (2), hasta que el cociente sea 0 o 1. El ltimo cociente y los restos obtenidos, al escribirlos en orden inverso a su obtencin, nos dan el resultado. 2. La parte fraccionaria se multiplica por la base (2); la parte entera obtenida (0..1) representa la cifra binaria. Se procede de forma iterativa con la parte fraccionaria que nos vaya quedando, hasta que sea 0 o veamos que el resultado ser peridico o infinitas cifras decimales. El resultado ser la unin de las partes enteras, en el orden que las hemos obtenido.

Estructura de computadores

Tema 2: Sistemas de representacin numrica

Ejemplo 1: Vamos a obtener el equivalente binario del valor decimal: 1110 En este caso tan slo tenemos parte entera. 11 |__2__ 1 5 |__2__ 1 2 |__2__ 0 1

Segn esto, el equivalente ser: 1110 = 10112

Puede comprobarse el resultado con los ejemplos anteriores.

Ejemplo 2: Expresar el nmero decimal 109,62510 en el sistema binario. Parte entera 109 |__2__ Obtenemos el valor 11011012 1 54 |__2__ 0 27 |__2__ 1 13 |__2__ 1 6 |__2__ 0 3 |__2__ 1 1 Parte fraccionaria 0,625 * 2 = 1,250 0,250 * 2 = 0,5 0,5 * 2 = 1,0 Obtenemos el valor: 1012

El resultado final es la unin de ambos valores: 109,62510 = 1101101,1012

Estructura de computadores

Tema 2: Sistemas de representacin numrica

Sistema Octal
Base: Alfabeto: 8 0,1,2,3,4,5,6,7

El inters de este sistema proviene de que su conversin al binario resulta sencilla, por ser 8 = 2 3. Se usa bastante con listados de programas y volcados de memoria (dump), pues permite impresiones mucho ms compactas que con el sistema binario, ya que cada dgito octal equivale a 3 dgitos binarios. Los ocho primeros nmeros octales se escriben: Octal 0 1 2 3 4 5 6 7 Conversin octal-binaria Para convertir un nmero expresado en base 8 a base 2, simplemente sustituimos cada una de las cifras que lo forman por sus tres cifras binarias equivalentes. Ejemplo: 375,4210 = 011 111 101,100 010 Conversin binaria-octal Se realiza a la inversa, comenzando desde la coma decimal hacia la izquierda para la parte entera, rellenando con 0s a la izquierda si fuera necesario; y desde la coma decimal hacia la derecha para la parte fraccionaria, rellenando con 0s a la derecha si fuera necesario. Ejemplo 1: 11111101,1000102 = 011 111 101,100 0102 = 375,4210 Ejemplo 2: 11010,10112 = 011 010,101 1002 = 32,5410 Decimal 0 1 2 3 4 5 6 7 Binario 000 001 010 011 100 101 110 111

Estructura de computadores

Tema 2: Sistemas de representacin numrica

Conversin octal-decimal Se realiza del mismo modo que de binario a decimal, teniendo en cuenta que la base ahora es B=8. Ejemplo: 345,5 8 = 38 2 + 48 1 + 58 0 + 58 -1= 192 + 32 + 5 + 0,625 = 229,62510 Conversin decimal-octal Se realiza del mismo modo que de decimal a binario, dividiendo la parte entera de forma sucesiva por la base B=8, y multiplicando la parte fraccionaria por la base. Ejemplo: Expresar el nmero decimal 1036,3510 en octal. Parte entera 1036 |__8__ El resultado ser: 103610 = 20148 23 129 |__8__ 76 49 16 |__8__ 4 1 0 2

Parte fraccionaria 0,35 * 8 = 2,8 0,8 * 8 = 6,4 0,4 * 8 = 3,2 0,2 * 8 = 1,6 0,6 * 8 = 4,8 Obtenemos el valor: 26314...8

El resultado final es la unin de ambos valores: 1036,3510 = 2014,26314...8

Estructura de computadores

Tema 2: Sistemas de representacin numrica

Sistema Hexadecimal
Base: Alfabeto: 16 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

El inters de este sistema proviene de que su conversin al binario resulta sencilla, por ser 16 = 24. Esto significa que cada grupo de 4 bits (dgitos en binario), equivale a uno solo en hexadecimal, con lo cual, obtendremos representaciones mucho ms compactas. Conversin hexadecimal-binario Basta con sustituir cada smbolo hexadecimal por su equivalente en binario, segn se indica en la tabla siguiente: Hexadecimal 0 1 2 3 4 5 6 7 8 9 A B C D E F Ejemplo: Hllese el equivalente binario del nmero 9A7E16 9A7E16 = 1001 1010 0110 11102 Conversin binario-hexadecimal La conversin de un nmero binario a hexadecimal se realiza a la inversa: se forman grupos de cuatro cifras binarias a partir de la coma decimal, hacia la izquierda y hacia la derecha, y se sustituye cada grupo por su equivalente hexadecimal. Si el grupo final de la izquierda queda incompleto, se rellena con 0s por la izquierda. Del mismo modo, si el grupo final de la derecha queda incompleto, se rellena con 0s por la derecha. Decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Binario 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

Estructura de computadores

Tema 2: Sistemas de representacin numrica

Ejemplo: Calclese el equivalente hexadecimal del nmero binario siguiente: 1101010111100011100000001,1100012 Agrupamos y rellenamos con 0s: 0001 1010 1011 1100 0111 0000 0001,1100 01002 Sustituimos cada grupo de 4 por su equivalente hexadecimal: 1 A B C 7 0 1 , C 4 Resultado: 1ABC701,C416

Conversin hexadecimal-decimal La conversin se realiza siguiendo el mismo procedimiento que en las conversiones binario-decimal, pero considerando la base B=16. En este caso, adems, deberemos sustituir los valores A..F por su equivalencia en el sistema decimal. Ejemplo: Hllese el equivalente decimal del valor hexadecimal 39,B816. 39,B816 = 3161 + 9160 + B16-1 + 816-2 = = 3161 + 9160 + 1116-1 + 816-2 = = 48 + 9 + 0.6875 + 0.03125 = = 57,71875 Conversin decimal-hexadecimal Procederemos del mismo modo que en la conversin decimal-binario, considerando B=16. Dividiremos la parte entera sucesivamente por la base, y la parte fraccionaria la multiplicaremos por la base. Ejemplo: Hllese el equivalente hexadecimal del nmero 4573,7910. Parte entera 4573 |_16__ 13 285 |_16__ 13 17 |_16__ 1 1 457310 = 11DD16

10

Estructura de computadores

Tema 2: Sistemas de representacin numrica

Parte fraccionaria 0,79 * 16 = 12,64 0,64 * 16 = 10,24 0,24 * 16 = 3,84 0,84 * 16 = 13,44 0,44 * 16 = 7,04 ... Valor final: Valor: 12 10 3 13 7... = CA3D7...16

4573,CA3D7...16

Conversiones de cualquier base


Conversin de una base cualquiera a base decimal (b => 10) Para este tipo de conversin utilizaremos la frmula de la suma de productos de potencias de la base vista anteriormente. Ejemplo: Hallar el equivalente decimal del valor 1312,3 4 1312,3 4 = 14 3 + 34 2 + 14 1 + 24 0 + 34 -1 = = 64 + 48 + 4 + 2 + 0.75 = 118,7510

Conversin de base decimal a otra base cualquiera (10 => b) Se realiza como hemos visto hasta ahora, es decir: Parte entera: dividiendo el nmero decimal por la base a la que queremos convertir, de forma sucesiva hasta que el cociente sea menor que la base. El ltimo cociente y los restos que resultan de todas las divisiones en orden inverso a su obtencin es el resultado final. Parte fraccionaria: multiplicando sucesivamente por la base, cogiendo las partes enteras como parte del resultado.

11

Estructura de computadores

Tema 2: Sistemas de representacin numrica

Ejemplo: Expresar el nmero decimal 545,6710 en base 5 Parte entera 545 |__5__ 0 109 |__5__ 4 21 |_ 5__ 1 4 54510 = 41405

Parte fraccionaria 0,67 * 5 = 3,35 0,35 * 5 = 1,75 0,75 * 5 = 3,75 0,75 * 5 = 3,75 ... Valor final: Valor: 3 1 3 3 ... = 3133...5

4140,3133...5

Conversin de una base b 1 a otra b 2 Para realizar este tipo de conversiones desde una base que no sea la decimal a otra que tampoco lo sea seguimos dos pasos: Convertir el valor en base b1 a base decimal Convertir de base decimal a b2 Estas conversiones las haremos segn los apartados anteriores. Valor en b1 Valor intermedio en base 10 Valor final en b2

Ejemplo: Expresar el valor 13189 en base 7. Convertimos a decimal (base 10): 13189 = 19 3 + 39 2 + 19 1 + 89 0 = 729 + 243 + 9 + 8 = 98910 Convertimos a base 7: 989 |__7__ 2 141 |__7__ 1 20 |__7__ 6 2 98910 = 26127

12

Estructura de computadores

Tema 2: Sistemas de representacin numrica

Conversiones de base con nmeros no enteros: Cuando trabajamos con nmeros no enteros tenemos parte entera y parte fraccionaria. Hemos visto que para convertir de decimal a cualquier otra base tenemos que realizar dos procesos cuando tenemos cifras decimales; la parte entera y la parte fraccionaria. La parte entera es sencilla, como hemos visto hasta ahora. Para la parte fraccionaria debemos tener en cuenta las siguientes consideraciones. Dependiendo del tipo de nmero que tengamos podemos tener las siguientes posibilidades. 1 Racionales 1.1 Cifras decimales no peridicas Procedemos como hemos visto hasta ahora, es decir, multiplicando sucesivamente por la base y nos quedamos con la parte entera. 0,615 x 2 = 1,250 0,250 x 2 = 0,500 0,500 x 2 = 1 Por tanto: 0,62510 = 0,1012 NOTA: el hecho de que un nmero N tenga un nmero finito de decimales en una base no implica que en otra base sea as (p.e. 0,82510)

1.2 Cifras decimales peridicas Tenemos que expresarlo en forma de fraccin equivalente irreducible, despus la expresaremos en binario (base 2) (numerador y denominador) y haremos la divisin en binario. _ 0,666... = 0,6 (peridico) Fraccin irreducible: _ x = 0,6 _ 1 x = 0,6 _ 10 x = 6,6 _ _ 10x - 1x = 6,6 - 0,6 = 6

(Lo llamamos x)

(La parte peridica detrs de la coma: ya est) (Desplazando el nmero de cifras peridicas) (Restando ambas expresiones)

13

Estructura de computadores

Tema 2: Sistemas de representacin numrica

x=6/9=2/3

(Fraccin equivalente e irreducible)

_ Se puede comprobar que: 2 / 3 = 0,6 Expresarlo en binario: 102 / 112

Finalmente, hacer la divisin binaria: 10 0 |__11__ - 11 0, 100100 ... -----0 0100 102 / 112 = 0,100 100 ...

Otros ejemplos: __ x = 0,07954 __ 1000 x = 79,54 __ 1000 00 x = 7954,54


(Lo llamamos x)

(La parte peridica detrs de la coma) (Desplazando el nmero de cifras peridicas)

__ __ 1000 00x - 1000x = 7954,54 - 79,54 = 7875


(Restando ambas expresiones)

x = 7875 / 99000 = 7 / 88

(Fraccin equivalente e irreducible)

__ Se puede comprobar que: 7 / 88 = 0,07954 __ x = 0,563 __ 10x = 5,63 __ 1000x = 56363

(Lo llamamos x)

(La parte peridica detrs de la coma) (Restando ambas expresiones)

__ __ 1000x - 10x = 563,63 - 5,63 = 558


(Restando ambas expresiones)

x = 558 / 990 = 279 / 495

(Fraccin equivalente e irreducible)

__ Se puede comprobar que: 279 / 495 = 0,563

En la prctica lo que se hace para obtener la fraccin equivalente es tomar el nmero como un entero, le restamos la parte no peridica y se divide por tantos 9s como el nmero de cifras peridicas y tantos 0s como las no peridicas.

14

Estructura de computadores

Tema 2: Sistemas de representacin numrica

Irracionales Tienen infinitas cifras decimales que no se repiten. Los tratamos como racionales, pero tenemos que considerar que trabajamos con errores, es decir, los resultados sern aproximados. El proceso es similar a los racionales no peridicos, solo que en este caso, necesitamos conocer el nmero de cifras decimales con las que nos vamos a quedar. Supongamos el nmero PI = 3,141592653 ... (infinitas cifras decimales) Vamos a considerar que el nmero PI = 3,1416 (redondeado a 4 cifras) Al hacer esto estamos cometiendo un error E1 10-4 Al convertirlo al sistema binario cometemos otro error E2, tal que: E2 E1

Para determinar el nmero de cifras fraccionarias binarias necesarias para que se cumpla la desigualdad anterior hacemos lo siguiente: Sabemos que: Del mismo modo: Debe complirse: Sustituyendo: Tomamos logaritmos: E1 10-4 E2 2-n, donde n = nmero de cifras fraccionarias. E2 E1 2-n 10-4. Log10 2-n Log10-4 -nLog10 2 -4Log10 10 -nLog10 2 -4 -n (-4 / Log10 2) n > (4 / Log10 2) n > 13,28

Por tanto, necesitaremos al menos 14 cifras decimales en la parte fraccionaria para no cometer ms error al convertir a binario. 0,1416 x 2 = 0,2832 0,2832 x 2 = 0,5664 0,5664 x 2 = 1,1328 0,1328 x 2 = 0,2656 0,2656 x 2 = 0,5312 0,5312 x 2 = 1,0624 0,0624 x 2 = 0,1248 Por tanto, el resultado ser: 0,1248 x 2 = 0,2496 0,2496 x 2 = 0,4992 0,4992 x 2 = 0,9984 0,9984 x 2 = 1,9968 0,9968 x 2 = 1,9936 0,9936 x 2 = 1,9872 0,9872 x 2 = 1,9744 3,141610 = 11,001001000011112 (con un error E 10-4).

15

Estructura de computadores

Tema 2: Sistemas de representacin numrica

2.2 Aritmtica binaria


La aritmtica binaria es bsica en las computadoras digitales Las operaciones aritmticas que vamos a ver son las mismas que para el sistema decimal: suma resta multiplicacin divisin, para la base binaria

Suma
La tabla de adicin siguiente nos muestra las 4 reglas bsicas para sumar dgitos binarios:

Valor 1 0 0 1 1

Valor 2 0 1 0 1

Suma 0 1 1 0

Acarreo 0 0 0 1

En el ltimo caso tenemos un acarreo, que se sumar en la cifra siguiente. Entonces tendremos que sumar 3 bits, los dos de las dos cifras binarias que estamos sumando y el bit de acarreo. Si ambos son 1, al sumarle el acarreo, obtendremos 1 y volveremos a tener un acarreo. Ejemplo: Sumar los valores binarios 110011101 y 10110111. 110011101 + 10110111 --------------------------10 01010100

16

Estructura de computadores

Tema 2: Sistemas de representacin numrica

Resta
La sustraccin binaria utiliza las siguientes reglas: Valor 1 0 0 1 1 Valor 2 0 1 0 1 Resta 0 1 1 0 Acarreo 0 -1 0 0

En el segundo caso, lo que haremos ser prestar un 1 de la siguiente columna, o la primera que no sea 0, sustituyendo todos los 0 por 1 desde esa columna hasta la columna actual (todo esto es en el minuendo).

Ejemplo: Efectuar la diferencia 11101 1011.


modificaciones en el minuendo: minuendo: substraendo: 0

11101 - 1011 -----------------10010

29 - 11 ------18

Ejemplo: Efectuar la diferencia 11000 10011.


modificaciones en el minuendo: minuendo: substraendo: 0 1 1

11000 - 10011 ------------------00101

24 - 19 ---------5

En el caso de que tengamos cifras decimales, lo primero que debemos hacer es alinear verticalmente las comas binarias antes de efectuar la resta y rellenar con ceros a la derecha de los nmeros para ajustar las partes fraccionarias a un mismo nmero de dgitos.

Ejemplo: Efectuar la diferencia 1101,101 11,10111.


modificaciones en el minuendo: minuendo: substraendo: 0 1 0 0 1 0 1

1101,10100 11,10111 ----------------------------1 0 0 1 , 1 11 01

17

Estructura de computadores

Tema 2: Sistemas de representacin numrica

Tambin podra hacerse como hacemos en el sistema decimal, sumando los acarreos negativos a la siguiente columna del sustraendo, es decir, en vez de realizar modificaciones en el minuendo, realizaremos modificaciones en el sustraendo. Cuando sumemos un acarreo, si en la siguiente columna tengamos un 1, se produce un nuevo acarreo y seguimos sumando dicho acarreo a la siguiente columna, hasta llegar a un bit 0.
minuendo: substraendo: modificaciones en el sustraendo:

1101,10100 11 ,10111
1 0 0 0 1 0 0

----------------------------1 0 0 1 , 11 1 01

18

Estructura de computadores

Tema 2: Sistemas de representacin numrica

Multiplicacin
La multiplicacin de 2 bits sigue las siguientes 4 reglas: Valor 1 0 0 1 1 Valor 2 0 1 0 1 Multiplicacin 0 0 0 1

La multiplicacin de nmeros binarios se realiza de la misma forma que con nmeros decimales. Se realizan los productos parciales, desplazando cada producto parcial una posicin a la izquierda, y luego se suman dichos productos. Es aun ms sencilla que con nmeros decimales, ya que en binario tan slo tenemos dos dgitos: 0 y 1. Cuando multiplicamos por 0 obtenemos 0, y cuando multiplicamos por 1 obtenemos el mismo nmero. Ejemplo: Calcular el producto 1100 x 1011. 1100 x 1011 --------------1100 1100 0000 +1100 ---------------------10000100 12 x 11 -------132

En el caso de que tengamos cifras decimales, la multiplicacin se realiza exactamente igual, y al final, el nmero de posiciones decimales en el nmero resultante del producto es la suma del nmero de cifras decimales de los nmeros que se estn multiplicando. Ejemplo: Calcular el producto binario 11,01 x 101,1. 11,01 x 101,1 -------------1101 1101 0000 1101 --------------------1 0 0 0 1,1 1 1 3,25 x 5,5 ------------1 6 25 1625 ------------1 7,8 7 5

19

Estructura de computadores

Tema 2: Sistemas de representacin numrica

Divisin
El algoritmo utilizado por la divisin binaria se r duce a sustracciones e repetidas del divisor. Las reglas utilizadas son las siguientes: Valor 1 0 0 1 1 Valor 2 0 1 0 1 Divisin No definido 0 Imposible 1

Ejemplo: Efectuar la divisin 1 1 1 0 1 1 1 / 1 0 0 1 0 1 1 1 0 1 1 1 |_1 0 0 1_ -1001 1101 -----------01011 -1001 -----------0 0 1 011 -1001 -----------0010

1 1 9 |__9__ - 9 13 -----29 -27 ------2

En el caso de fracciones binarias se trata de la misma forma que la divisin de fracciones decimales, es decir, se convierte el divisor en un entero desplazando la coma binaria a la derecha; el dividendo se desplaza el mismo nmero de posiciones. Ejemplo: Realizar la divisin 111,00001 / 1,01 1 1 1 0 0 , 0 0 1 |__1 0 1___ -101 101101 --------011 01000 01000 - 101 - 101 -----------------------0110 011 -101 ---------00101 - 101 -----------000 7,03125 / 1,250 = 5,625

110 - 101 -----------001

20

Estructura de computadores

Tema 2: Sistemas de representacin numrica

El resultado final ser el cociente pero cogiendo tantas cifras decimales como tenga el dividendo, despus de haber desplazado la coma. En este caso son 3. Por tanto, el resultado es: 101,101. NOTA: Los computadores utilizan una forma de representacin de los nmeros negativos llamada complemento, que nos facilita la realizacin de las operaciones de resta, ya que utiliza circuitos sumadores. La veremos en el siguiente apartado.

21

Estructura de computadores

Tema 2: Sistemas de representacin numrica

2.3 Representacin computadoras

de

la

informacin

en

las

En las computadoras, la informacin se procesa por conmutacin y almacenamiento de seales elctricas. Se utiliza el sistema binario por la facilidad y estabilidad que tiene representar dos estados lgicos diferenciados. Dependiendo de las familias lgicas utilizadas, se utiliza un valor de tensin para representar el 0 lgico y otro valor para el 1 lgico. No se trata de un valor exacto, sino de un margen. Familia TTL: Familia CMOS: Familia ECL (lg.neg.): 0 = 0,2 v / 1 = 3,3 v 0 = 0..3 v / 1 = 7..10 v 0 = -0,75 v / 1 = -1,5 v

Los dgitos binarios se suelen transmitir y recibir como una sucesin de impulsos. Existen dos tcnicas para distinguir entre los dos estados lgicos: Con retorno a cero (RZ): un impulso positivo representa un 1 y un impulso negativo representa un 0.

1 0

Sin retorno a cero (NRZ): el 0 se representa por ausencia de impulso, y el 1 se representa por un impulso. Lgicamente, los circuitos receptores deben mantenerse sincronizados con la seal.

22

Estructura de computadores

Tema 2: Sistemas de representacin numrica

Nmeros con signo


Los sistemas digitales deben ser capaces de manejar nmeros positivos y negativos. Un nmero binario con signo queda determinado por su magnitud (valor) y su signo (positivo/negativo). El smbolo - del sistema decimal no se puede representar en binario. Debido a esto, existen 3 formatos de representacin de nmeros con signo: Signo-magnitud: Complemento a la base Complemento a la base menos uno

En todos ellos, el signo del nmero viene representado por un bit adicional, el Bit de signo, que se coloca en el extremo izquierdo del nmero binario con signo. Se utiliza el siguiente convenio: 0: signo positivo Mtodo signo-magnitud Se trata de reservar el bit del extremo izquierdo (MSB) como bit de signo; los restantes representan el valor numrico del nmero en formato binario (magnitud). n bits Bs 1 bit Magnitud (n-1) bits 1: signo negativo

Por ejemplo, para n=8: +1110 = 0 000 1011 - 1110 = 1 000 1011 En un registro de n bits, los nmeros que pueden representarse sern 0 .. 2 -1. En total 2 n nmeros. Al utilizar el primer bit como bit de signo, no se reduce la cantidad de nmeros que se pueden representar (2n), pero si el valor mnimo y mximo, pues en vez de tener n bits para la magnitud ahora tendremos n-1 bits. Por tanto, el rango de valores que podremos representar en signo-magnitud es:
n

-(2n-1-1) .. 0 .. +(2n-1-1) Esta representacin presenta ciertos inconvenientes: Pues para cualquier operacin aritmtica debemos comprobar primero el signo, para despus sumar o restar en funcin del mismo. El diseo de circuitos lgicos que realicen operaciones aritmticas con nmeros binarios en signo-magnitud no es fcil. Tenemos dos representaciones para el nmero 0: +010 = 0 000 0000 -010 = 1 000 0000 23

Estructura de computadores

Tema 2: Sistemas de representacin numrica

Mtodo del complemento La utilizacin de nmeros complementados es un concepto especialmente til para simplificar la resta, pues permite realizarla utilizando circuitos sumadores. Los nmeros positivos en este sistema se representan de la misma forma que los nmeros positivos en formato signo-magnitud, simplemente se aade un 0 como bit de signo a la magnitud del nmero. El nmero 0 se identifica como positivo y tiene por tanto un bit de signo 0 y una magnitud de todos ceros. Los nmeros negativos son el complemento del correspondiente nmero positivo. Existen dos variantes en la forma de complemento: el complemento a la base y el complemento a la base menos uno. NOTA: Cuando hay decimales, se quita la coma, se hace el complemento correspondiente y de nuevo se coloca la coma.

Complemento a la base El complemento a la base de un nmero a de n cifras es el valor: Cb = bn |a| con b = base del sistema n = nmero de dgitos incluido el signo |a| = valor absoluto del nmero

Para el sistema binario recibe el nombre de complemento a 2 o complemento verdadero: b=2 => C 2 = 2n |a|

Complemento a la base menos 1 El complemento a la base menos 1 de un nmero a es el valor: Cb-1 = bn 1 |a| b = base del sistema n = nmero de dgitos incluido el signo |a| = valor absoluto del nmero

Para el sistema binario recibe el nombre de complemento a 1 o complemento restringido: b=2 => C 1 = 2n 1 |a|

24

Estructura de computadores

Tema 2: Sistemas de representacin numrica

Ejemplo: considerando la base decimal (b=10), obtener los complementos a la base (C 10) y a la base menos uno (C 9): a = 2310 Tenemos 2 dgitos (n = 2)

C10: -2310 = 102 |a| = 100 23 = 77C10 2 C9 : -2310 = 10 1 |a| = 100 1 23 = 76C9 a = 125810 Tenemos 4 dgitos (n = 4)

C10: -125810 = 104 |a| = 10000 1258 = 8742C10 4 C9 : -125810 = 10 1 |a| = 10000 1 1258 = 8741C9 Ejemplo: considerando la base binaria (b=2) y 8 dgitos (n=8), obtener el correspondiente C 1 y C2 de los siguientes valores: a = 1010 = 0000 10102 C2: -1010 = 28 |a| = 1 0000 0000 0000 1010 = 1111 0110C2 0111111 100000000 - 00001010 -------------------------11110110 C1: -1010 = 28 1 |a| = 1 0000 0000 1 0000 1010 = = 1111 1111 0000 1010 = = 1111 0101C1 11111111 - 00001010 ----------------------11110101 En la prctica, y SOLO para el sistema binario (b=2): El complemento a 1 se obtiene directamente sin ms que cambiar en el nmero todos los 0s por 1s y viceversa. El complemento a 2 se obtiene sumando 1 al complemento a 1.

Aplicando esta regla en el ejemplo anterior obtenemos los mismos resultados: a = 1010 = 0000 10102 C1 = 1111 0101 C2 = 1111 0101 + 1 = 1111 0110 Podemos comprobar que los nmeros negativos siempre tienen el bit de signo (MSB) a 1, y los positivos a 0.

25

Estructura de computadores

Tema 2: Sistemas de representacin numrica

Operaciones aritmticas de nmeros con signo


Suma Cuando se suman dos nmeros binarios A y B (A+B) pueden producirse cuatro casos: A y B son positivos A+B 0 A y B son negativos A+B < 0 A es positivo y B negativo, con A > |B| A+B 0 A es positivo y B negativo, con |B| > A A+B < 0

En cualquier caso, el procedimiento de la suma es muy sencillo: sumar los dos nmeros y descartar el bit de acarreo final (si lo hay).

Ejemplos: Consideremos nmeros con signo de 8 bits (n=8). A y B son positivos (A=7, B=4)

710 = 0000 0111 410 = 0000 0100 00000111 +00000100 ----------------------0 0001011 7 +4 -----11

A y B son negativos (A=-5, B=-9) C2 = 1111 1010 + 1 = 1111 1011 C2 = 1111 0110 + 1 = 1111 0111 -5 + -9 -------14

510 = 0000 0101 910 = 0000 1001 11111011 +11110111 -----------------------1 1 1 1 1 0 010

En este caso tenemos acarreo, que descartamos. Como la suma es negativa, el resultado est en C2.

26

Estructura de computadores

Tema 2: Sistemas de representacin numrica

Para comprobar el resultado: C2 = b n |a| => |a| = bn C2. |a| = 28 C2 = 1 0000 0000 1111 0010
Mod. minuendo: 01 11 1 11

100000000 - 11110010 -----------------------0 0 0 0 1 1 1 0 ==> |a| = 14 ==> a = -14

A es positivo y B negativo, con A > |B| (A=15, B=-6)

1510 = 0000 1111 610 = 0000 0110 00001111 +11111010 ----------------------100001001

C2 = 1111 1001 + 1 = 1111 1010 15 + -6 ------9

Como siempre, el bit de acarreo se desprecia.

A es positivo y B negativo, con |B| > A (A=16, B=-24)

1610 = 0001 0000 2410 = 0001 1000 00010000 +11101000 ----------------------11111000

C2 = 1110 0111 + 1 = 1110 1000 16 + -24 --------8

Cuando se suman dos nmeros y el nmero de bits requerido para representar la suma excede al nmero de bits de los dos nmeros, se produce un desbordamiento (overflow), que se indica mediante un bit de signo incorrecto (p.e. negativo cuando A y B son positivos).

27

Estructura de computadores

Tema 2: Sistemas de representacin numrica

Resta El mecanismo es cambiar el signo al sustraendo y sumar al minuendo: a b = a + (-b) La forma de cambiar el signo al sustraendo es mediante la complementacin (C1 C2). Complemento a 1 (C1) Utilizando la forma de C1 se puede convertir la operacin de resta de dos nmeros binarios en una operacin de suma. La forma de operar consiste en calcular el C1 del sustraendo y sumarlo al minuendo. Tenemos dos posibilidades Si se produce acarreo, ste se suma al bit menos significativo de la suma (acarreo circular), para corregir el error que se produce. Si no hay acarreo: el resultado es negativo y la solucin se obtiene complementando a 1 el resultado de la suma.

Ejemplo: Calcular la diferencia 11001 10110, utilizando C1. Resta ordinaria: 01 11001 - 10110 ----------------00011 Utilizando C1: 1 1 110 01 +01001 ---------------1 0 0 0 1 0 Acarreo + 1 ---------------00011

El C1 tiene la ventaja de que es sencillo de disear un circuito, pues tan solo necesita un inversor para cada bit, que se colocarn en paralelo y sern los bits de entrada de un circuito sumador. Pero el C1 tiene dos inconvenientes: Hay dos formas de expresar el cero (+0 y -0): +0 = 00 .. 00 -0 = 11 .. 11 La resta de dos nmeros no es vlida cuando son iguales (el resultado es 0 (cero negativo).

Con el C2 se eliminan estos problemas.

28

Estructura de computadores

Tema 2: Sistemas de representacin numrica

Complemento a 2 (C2) Del mismo modo que en C1, calculamos el C2 del substraendo y lo sumamos al minuendo. Tambin tenemos dos posibilidades: Si se produce acarreo: ste se desprecia (al contrario que con C1). Si no hay acarreo: el resultado es negativo y la solucin se obtiene complementando a 2 el resultado de la suma.

Ejemplo: Calcular la diferencia binaria 1012 110112. Resta ordinaria:


0

Utilizando C1: 00101 +00100 ---------------001001


(Como no hay acarreo => C1) (Como no hay acarreo => C2)

Utilizando C2: 00101 +00101 ---------------001010 Res: -10110

11011 - 00101 ---------------10110


(Cambiamos el signo al final)

Res: -10110

Res: -10110

Resta ordinaria: como el sustraendo es menor que el minuendo, hacemos la resta poniendo el mayor como sustraendo, pero luego debemos poner el resultado como negativo. Utilizando C1 y C2: como no hay acarreo, hacemos el C1/C2, y por tanto, el resultado es negativo.

29

Estructura de computadores

Tema 2: Sistemas de representacin numrica

Si consideramos la base decimal, la forma de operar sera la misma, teniendo que obtener el C9 o C10. Ejemplo: Calcular la diferencia 30010 298,6410 = 1,3610, utilizando C9 y C10: a = 298,6410 Utilizando C10: C10: 105 |a| = 100000 29864 = 70136 300 + 701,36 --------------1001,36 C10 = 701,36 Bit de acarreo se desprecia: 1,36 a = 2986410 (sin coma decimal)

C10: 103 |a| = 1000 |a| = 1000 298,64 = 701,36 300 + 701,36 --------------1001,36 Utilizando C9: C9: 105 1 |a| = 100000 1 |a| = 99999 29864 = 70135 300 + 701,35 --------------1001,35 + 1 --------------1,36 C9: C9 = 701,35 Bit de acarreo se suma al resultado

Bit de acarreo se desprecia: 1,36

103 1 |a| = 1000 1 |a| = 999 298,64 = 700,36 300 + 700,36 --------------1000,36 + 1 --------------0,37

MAL HECHO !
Bit de acarreo se suma al resultado

RECUERDA: Para calcular el complemento (cualquiera), cuando hay decimales, se quita la coma, se hace el complemento correspondiente y de nuevo se coloca la coma.

30

Estructura de computadores

Tema 2: Sistemas de representacin numrica

Multiplicacin y Divisin En ambos casos realizaremos la operacin sin tener en cuenta el signo de los dos nmeros binarios, y posteriormente le aplicaremos el signo, teniendo en cuenta: Si los dos son del mismo signo: Si los dos son de diferente signo: resultado positivo. resultado negativo.

31

Vous aimerez peut-être aussi