Está en la página 1de 5

ARITMTICA BINARIA.

Las operaciones de sumar, restar, multiplicar y dividir en el sistema binario se hacen de igual forma que en decimal, sin embargo, es normal que la electrnica interna de las mquinas digitales solo tenga capacidad para sumar. Otras operaciones diferentes a la suma se consiguen mediante un conjunto de sumas: La resta de dos valores se consigue sumando a uno de los valores el complemento del otro, es un truco muy ingenioso que veremos en el siguiente apartado. El producto se hace sumando a s mismo uno de los factores, tantas veces como indique el otro factor. Su eficacia radica en la gran velocidad de clculo de los procesadores, siendo frecuente adems un coprocesador matemtico dedicado solo para operaciones, lo que reduce la carga del procesador central. Por ltimo, una divisin solo es una cuestin de repartir a partes iguales que se puede conseguir por aproximaciones sucesivas. A ttulo informativo se describen a continuacin los 4 tipos de operaciones bsicas pero como ya se ha indicado, solo presenta inters la suma. SUMA BINARIA:

RESTA BINARIA:

Se ha puesto un ejemplo de resta en decimal como punto de referencia para restar en binario. Vea que empezando por la derecha, en cuarto lugar encontramos que de 7 a 13 van 6 y arrastramos 1 a la izquierda que se suma al 4 (quedando 5 y faltando 3 para

llegar a 8). En sexto lugar encontramos que de 9 a 15 van 6 y arrastramos 1 a la izquierda que se suma al 9. Esto hace que 9 + 1 = 10, con lo que queda 0 (de 0 a 4 van 4) y se arrastra el 1 para sumarse al 1 del extremo izquierdo, con lo que de 2 a 5 van 3. En el ejemplo binario, en cuarto lugar comenzando por la derecha, encontraremos que de 1 a 10 (ser 2 pasado a decimal) va 1 y se arrastra 1 a la izquierda para sumar al 0. En sexto lugar volvemos a encontrar que de 1 a 10 va 1 y se arrastra 1 a la izquierda para sumar al 1 (esto desencadena otro arrastre hasta la ltima posicin izquierda).

PRODUCTO BINARIO: La multiplicacin es tan sencilla que no se necesita explicacin. Si sabemos multiplicar en sistema decimal no encontraremos ningn problema para hacerlo en binario. Si el nmero de cifras es grande, es posible que se junten muchos unos en las sumas finales, por ejemplo 5 unos cuya suma binaria es 101, en cuyo caso queda 1, se arrastra un 0 a la izquierda (que no afecta) y se arrastra un 1

dos lugares a la izquierda. DIVISIN BINARIA: En este ejemplo, hay que comenzar cogiendo 4 cifras del dividendo para sobrepasar al divisor. As resulta que 1011 entre 111 toca a 1 (solo puede ser 1 o 0). 1 por 111 es 111 y falta 100 hasta llegar a 1011. Bajando la siguiente cifra (un 0) resulta que 1000 entre 111 toca a 1. As sucesivamente.

LOS COMPLEMENTOS. El problema que se trata de resolver es la forma de expresar nmeros negativos en el sistema binario, valindonos nicamente de seales que solo pueden ser verdaderas o falsas. Es cierto que una de las seales podra representar el signo y el resto de las cifras formaran siempre un valor positivo, pero la electrnica del dispositivo sera compleja porque debera ser capaz de restar cuando encontrara el signo menos. Parece imposible, pero los complementos permiten hacer restas mediante sumas y reducen con ello la electrnica de la mquina. Cree por ejemplo que el valor 9279 es igual a -721? Si los valores (en este ejemplo) se manipulan siempre en registros de 4 cifras y todo lo que se salga desaparece, entonces es cierto y lo vamos a ver: Si hacemos la suma 721 + 9279 se obtiene el valor 10000, pero como se ha dicho, en un registro de 4 cifras solo caben los 4 ceros y el 1 se pierde. Si en el registro solo hay ceros, el resultado hay que considerarlo 0, por lo tanto 721 + 9279 = 0, lo que solo es posible si 9279 es igual a -721. Por supuesto, se puede pensar que se trata de un truco, y lo es, pero esto es lo que funciona realmente en los dispositivos digitales: Cuando introducimos dos valores y los restamos, la mquina transforma uno de los datos de manera que resuelve la resta haciendo una suma. Las reglas de la transformacin tienen que ser muy simples ya que de lo contrario no compensara el esfuerzo y tratndose del sistema binario, realmente son muy sencillas. El complemento a 1 de un valor binario se obtiene invirtiendo el estado de todas sus cifras, incluyendo los ceros a la izquierda hasta completar la capacidad del registro. Por ejemplo, el valor 10011 en un registro de 8 bits (cifras) ser 00010011 y su complemento a 1 ser 11101100. El complemento a 2 de un valor binario se obtiene sumando 1 al complemento a 1. Por ejemplo, el complemento a 2 de 10011 (el mismo anterior) ser 11101100 + 1 = 11101101. Cmo restar sumando: El complemento a 2 de un nmero binario se puede considerar directamente su equivalente negativo. Por lo tanto, para hacer la resta a - b = x? basta con calcular el resultado "x" (sin olvidar el tamao del registro que se utilice) como: x = a + (complemento a 2 de b) El tamao de los registros es normalmente el nmero de bits del procesador de la mquina, actualmente 32 en la mayora de los ordenadores y autmatas industriales. Otra forma de restar sumando consiste en utilizar el complemento a 1, pero en este caso,

el 1 de arrastre que se sale fuera del registro se suma de nuevo al resultado, quedando en el registro el resultado esperado de la resta. Bit de signo: Suponiendo que un registro es de 4 bits, qu podemos pensar de un valor como 1101? ser positivo o negativo? No hay duda: Cuando el bit de mayor peso (el que est ms a la izquierda en el registro que contiene al nmero) sea un uno significa que es negativo y si es un cero ser positivo. Esto es as porque al complementar un valor (al hacerlo negativo), los ceros a la izquierda tambin se transforman en unos, incluido el bit de mayor peso. Como el complemento a 2 de 1101 es 0011, entonces resulta que 1101 = -0011 = -310. La conclusin anterior afecta directamente a la programacin de cualquier dispositivo programable, as por ejemplo cuando se define un dato como entero con signo en un procesador de 32 bits, el nmero positivo ms grande ser un cero seguido de 31 unos, que equivale en decimal a 231 - 1. Igualmente, el valor negativo ms bajo ser un uno seguido de 31 ceros, que equivale en decimal a -(231). Por el contrario, cuando un dato se define como entero sin signo, el contenido siempre ser positivo, siendo el valor ms bajo el cero y el ms grande ser 232 - 1, es decir, 32 unos. En programacin, cada tipo de dato tiene asignado un determinado nmero de bits, otros ejemplos pueden ser los enteros largos y los reales o dobles, a los que se destina normalmente el doble de bits que al entero. Lo importante es que debe tenerse una cierta precaucin en las operaciones, ya que si el resultado desborda la capacidad del registro podemos encontrarnos con la sorpresa de que nos devuelve un valor extrao que adems puede estar cambiado de signo. NMEROS REALES (coma flotante). Nmeros como 10, 45 o -13 son valores enteros que se manipulan con las operaciones que ya conocemos. Otra cosa son los valores como 25,47 que no son enteros pero al igual que los anteriores forman parte del conjunto de los nmeros reales. En binario tambin tienen representacin los nmeros con decimales: Cada cifra que haya despus de la coma tiene igualmente un peso que depende de su posicin, comienza por la izquierda con valor igual a 1/2 y decrece hacia la derecha, siempre multiplicando por 1/2 para obtener el siguiente. Veamos un ejemplo: 11001,0112 = 116 + 18 + 04 + 02 + 11 + 0(1/2) + 1(1/4) + 1(1/8) = 25,37510 Para pasar de decimal a binario se pasa normalmente la parte entera y la parte decimal se va multiplicando por 2 hasta que se anulan los decimales y los decimales binarios se obtienen con la parte entera que se obtiene en cada paso. Por ejemplo: 25,37510 = 25 + 0,375 = 110012 + decimales

0,3752 = 0,750 (primer decimal el 0); 0,752 = 1,50 (segundo decimal el 1); 0,502 = 1,0 (tercer decimal el 1). Queda finalmente: 25,37510 = 11001,0112 La forma anterior de proceder es complicada de implementar con electrnica digital o al menos existe otra manera mucho ms sencilla que es la coma flotante. Sin coma flotante, es necesario seguir la pista a la posicin de la coma cada vez que se hace una operacin y al operar con los valores de dos registros no puede relacionarse directamente bit con bit de iguales posiciones, ya que al variar las posiciones de las comas hacen que los pesos de cada bit tambin se desplacen. En coma flotante cada nmero se expresa con un valor entero y un exponente de la base del sistema, por ejemplo, el valor -43,425 ser igual a -4342510-3 (notacin cientfica), es decir, queda definido por el valor entero -43425 y el exponente -3. En los registros, se destina un nmero fijo de cifras para el valor entero y el resto de cifras para el exponente. Al multiplicar los valores de dos registros, simplemente se multiplican los enteros y se suman los exponentes. Al dividir, se dividen los enteros y se restan los exponentes. Para sumar o restar dos valores, se suman o restan los enteros y se mantienen los exponentes, siempre y cuando tengan igual exponente. Por ejemplo, no se puede sumar directamente 10310-2 con 23510-1, pero s se puede sumar 10310-2 con 235010-2 porque ya tienen igual exponente y el resultado ser (103 + 2350)10-2. Ntese que al restar un valor al exponente, hay que multiplicar al entero por la base (10 en sistema decimal, 2 en binario) elevada al valor que se resta al exponente. Los valores lmite en este tipo de representacin dependen por separado del nmero de bits asignados al entero y al exponente.