Está en la página 1de 10

INDICE

INDICE..............................................................................................................1 SUMAS DE CANTIDADES EN BINARIO USANDO PARA ELLO COMPLEMENTO A DOS Y MULTIPLICACIONES Y DIVISIONES EN BINARIO USANDO EL ALGORITMO DE BOOTH...........................................2 FORMATO COMPLEMENTO A DOS...............................................................2 DEFINICION:.................................................................................................2 WRITE...........................................................................................................3 READ.............................................................................................................4 ALCANCE.........................................................................................................5 ARITMETICA.....................................................................................................5 ALGORITMO DE BOOTH.................................................................................6 ALGORITMO DE BOOTH PARA DIVISION DE BINARIOS............................9 BIBLIOGRAFIA ..............................................................................................10

SUMAS DE CANTIDADES EN BINARIO USANDO PARA ELLO COMPLEMENTO A DOS Y MULTIPLICACIONES Y DIVISIONES EN BINARIO USANDO EL ALGORITMO DE BOOTH.

FORMATO COMPLEMENTO A DOS El formato de representacin de nmeros enteros por complementacin ideal para el computador es el formato llamado Complemento-a-Dos. Abreviaremos su nombre a C-a-2. Como su nombre indica, ste es un formato que complementa a la base del sistema numrico usado. Al igual que hicimos con el formato C-a-10, una vez tenemos la cantidad de posiciones que estaremos usando en la escritura, calculamos la totalidad de representaciones disponibles y dividimos stas usando una mitad del total para representar nmeros negativos y la otra mitad para representar el cero y los positivos. La gran ventaja de este formato es que integra el signo del nmero en la escritura y al momento de hacer aritmtica, las cosas se facilitan grandemente porque no hay que estar examinando el signo de los operandos. La gran mayora de las aplicaciones comunes usan datos enteros en sistema decimal, por lo tanto, toda operacin de Entrada/Salida requerir que los datos sean convertidos a sistema binario primero y luego llevados a formato. En el caso de datos positivos, stos pasan a la representacin directamente tomando slo en cuenta el espacio finito y fijo de trabajo. Si el dato es negativo, en adicin, se requiere la complementacin.
DEFINICION:

El formato Complemento-a-Dos es un formato para representar nmeros con signo fundamentado en el sistema posicional de escritura con base dos: el sistema binario. Primero, se establece el espacio de trabajo, es decir, el nmero de posiciones binarias de escritura o bits. A m bits tenemos 2m representaciones disponibles. Usamos la mitad de stas para representar los nmeros negativos y la otra mitad para representar el cero y los nmeros positivos. La representacin del cero y la asignada a cada entero positivo corresponde a su escritura en sistema binario, tan slo aadimos ceros al frente para completar el total de bits a la escritura fija de ser necesario. Reconoceremos que una representacin corresponde a un nmero positivo porque siempre comienza con un bit de cero. En el caso de que la cantidad sea negativa, para buscar su representacin, es necesario llevar a cabo el proceso de complementacin. ste consiste en buscar la diferencia (cunto le falta) de la magnitud, al total de representaciones posibles (2 m).

COMO COMPLEMENTAR Necesitamos complementar solamente cuando vamos a buscar la representacin de un nmero negativo o cuando vamos a leer un formato que corresponde a negativo. Buscar el complemento de una cantidad es determinar la diferencia de la cantidad al total de representaciones. Esta operacin la hacemos directamente en sistema binario. Note que al trabajar a un espacio de m posiciones, como hemos dicho anteriormente, el total de representaciones disponibles es 2m; esta cantidad al escribirla en sistema binario es 1000...0 (un uno seguido de m ceros). Esto implica que al hacer la resta siempre tendremos arriba (el disminuyendo) ceros, lo que nos obliga a tomar prestado de la posicin ms significativa (la que tiene el uno), situacin no muy cmoda que digamos. Por eso, vamos a realizar la resta 2m - 1, cuya escritura en binario es 11111...1 (m unos) y al resultado le sumamos 1 para compensar. Ahora no es necesario tomar prestado en la resta y ms aun, cuando estamos restando a un bit que contiene 1 en el disminuyendo, el resultado es justo el valor opuesto del bit en el substraendo. Note que 1 - 1 = 0, 1 - 0 = 1. Esto lo podemos resumir en la receta siguiente: 1. Escriba el nmero en binario al espacio de trabajo. Es decir, aada ceros al frente si los necesita. Ignore el signo. Slo complementamos si el nmero es negativo. 2. Cambie los 1 por 0. Cambie los 0 por 1. 3. Smele 1. Ejemplo: Construya la representacin de -10100 en 8 bits. 1. 00010100 2. 11101011 3. + 1 = 11101100 *Reconoceremos la representacin de una cantidad negativa porque sta siempre empieza con un bit de uno. A continuacin, se ilustra cmo se maneja este formato al realizar operaciones de Entrada/Salida, imaginando operaciones de acceso, de grabar (el write) y de leer (el read).
WRITE

Vamos a presuponer que estamos trabajando en 8 bits para los ejemplos que siguen. 8510 binario > 10101012 formato > 01010101 vuelco > 55 -8510 binario > -10101012 formato* > 10101011 vuelco > AB. *En este caso, como el nmero es negativo, tenemos que pasar por el proceso de complementacin para llevar a formato. Es decir: 3

i. Escribimos la magnitud del nmero al espacio de trabajo, aqu necesitamos aadir un cero no-significativo al frente: 01010101. ii. Cambiamos el bit de cero a uno y el bit de uno a cero: 10101010. iii. Le sumamos uno: 10101010 + 1 = 10101011 3. 14510 binario > 100100012 formato > 10010001. Pero esto no puede ser. Los formatos correspondientes a nmeros positivos comienzan con un bit de cero. Lo que est sucediendo es que el nmero es demasiado grande para el espacio de trabajo. 4. -14510 binario > -100100012 formato > 01101111. De nuevo, reconocemos que esto no puede ser porque los formatos correspondientes a cantidades negativas comienzan con un bit de uno. Como el nmero es demasiado grande en tamao, tenemos un problema de overflow.
READ

Miraremos ahora algunos ejemplos donde dado un contenido en su representacin hexadecimal lo interpretamos bajo el formato C-a-2 . Recordemos que cada carcter hexadecimal representa cuatro bits. El nmero de caracteres que representa el contenido nos indica implcitamente el espacio de trabajo. Al leer un contenido bajo un formato de entero, esperamos como resultado un entero. Es ms cmodo expresar el resultado directamente en sistema hexadecimal para evitar tener que hacer cambios de base que impliquen clculos. 1. 6A formato > 01101010 lectura > 6A16. Como el formato empieza con cero, sabemos que corresponde a un entero positivo y su lectura es directa: 1101010 en binario, 6A en sistema hexadecimal. 2. E277 formato > 1110001001110111 lectura > -1D8916. En este caso, el formato comienza con uno, por lo tanto, representa una cantidad negativa y para leer su magnitud tenemos que complementar. No olvidemos de escribir el signo explcitamente. La complementacin explicada arriba parte de nmeros escritos en binario. Si abreviamos la escritura binaria usando caracteres hexadecimales, es decir, representando por su correspondiente carcter hexadecimal cada grupo de cuatro bits, entonces nos sera ms fcil hacer la complementacin directamente con los caracteres hexadecimales. Slo tenemos que darnos cuenta que en el segundo paso de la receta para complementar, el cambiar cada bit por su valor opuesto equivale a restar de 1111...1. En otras palabras, al escribir este disminuendo en hexadecimal, estaramos restando de FF...F. As que podemos complementar directamente en hexadecimal restando cada carcter hexadecimal de F y despus sumando uno a la posicin de las unidades.

En los prximos dos ejemplos trabajamos directamente en sistema hexadecimal. 3. 00042123 lectura > 4212316 lectura 4. FFFC2045 > -3DFBB16. Cuando el contenido que estamos leyendo comienza con un caracter de 8 o ms, equivale a un formato empezando con uno en binario, y para leer tenemos que complementar. ALCANCE Mximo: El nmero ms grande que podemos representar en m bits es 2m-1 1. Mnimo: El nmero ms pequeo representable usando m bits es -2m-1. Es decir, el negativo de tamao mayor. ARITMETICA El formato C-a-2 es ideal para hacer aritmtica. Se suman los formatos sin importar que representen en una suma binaria. Como en otros formatos, tomamos nota en cuanto a las condiciones de carry-over y/o overflow. En este formato se pueden dar todas las cuatro combinaciones en cuanto a carry-over y overflow. Al tener carry-over, el bit se pierde. Ejemplo 1 01000011 10010000 11010011 Ejemplo 2 11000000 11100000 10100000

no carry-over no overflow

carry-over no overflow

Ejemplo 3 01010000 01100001 10110001

no carry-over Overflow

Ejemplo 4 10000010 10000110 00001000

carry-over overflow

ALGORITMO DE BOOTH El algoritmo de Booth examina pares adyacentes de bits del multiplicador Y de N-bits en la representacin de complemento a dos con signo, incluyendo un bit implcito debajo del bit menos significativo, y-1 = 0. Para cada bit yi, para i corriendo desde 0 hasta N-1, los bits yi e yi-1 son considerados. Cuando estos dos bits son iguales, el acumulador del producto P es dejado sin cambios. Cuando yi = 0 e yi-1 = 1, el multiplicando multiplicado por 2i es agregado a P; y cuando yi = 1 e yi-1 = 0, el multiplicando multiplicado por 2i es restado de P. El valor final de P es el producto con signo. La representacin del multiplicando y del producto no son especificadas; tpicamente, stos tambin estn ambos en la representacin de complemento a dos, como el multiplicador, pero cualquier sistema de numeracin que soporte la adicin y la substraccin trabajar igual de bien. Segn lo indicado aqu, el orden de los pasos no est determinado. Tpicamente, procede desde el bit menos significativo (LSB) al bit ms significativo (MSB), comenzando en i = 0; la multiplicacin por 2i es entonces tpicamente reemplazado por el desplazamiento (shifting) incremental del acumulador P a la derecha entre los pasos; los bits bajos pueden ser desplazados hacia fuera, y las adiciones y substracciones subsecuentes entonces pueden ser hechas justo en los N bits ms altos de P.1 Hay muchas variaciones y optimizaciones sobre estos detalles El algoritmo es a menudo descrito como convertir secuencias de 1s en el multiplicador con un +1 de orden alto y un -1 de orden inferior en los extremos de la secuencia. Cuando una secuencia corre por el MSB, no hay +1 de orden alto, y el efecto neto es la interpretacin como un negativo de valor apropiado. El algoritmo de Booth es un mtodo rpido y sencillo para obtener el producto de dos nmeros binarios con signo en notacin complemento a dos. Debemos saber que un nmero binario est formado por bits de ceros y unos, y que se puede traducir a decimal fcilmente de la siguiente forma:

Sabiendo que la posicin de cada bit es 2^n (elevado a n) y partimos de n=0 de derecha a izquierda, slo queda realizar la suma total de multiplicar por dicho bit, en este caso: (02^7+12^6+02^5+12^4+02^3+12^2+12^1+02^0 = 86). 6

Tambin debemos saber que el complemento a uno de un nmero binario es cambiar sus ceros por unos, y sus unos por ceros (complementar): (010010 -> ca1:101101) y que el complemento a dos de un nmero binario es el resultado de sumar 1 al complemento a uno de dicho nmero binario:

Realizar una suma con dos nmeros binarios es tarea fcil, pero la multiplicacin resulta algo ms complicada. Con el algoritmo de Booth, resulta mucho ms sencillo de implementar. Partimos del ejemplo de la multiplicacin 62=12:

Como se puede ver en la imagen superior, partiendo de los nmeros binarios de la multiplicacin 62 (multiplicando y multiplicador) creamos tres nuevos nmeros binarios del doble de tamao (16 en el ejemplo): A, S y P.

Partiendo del nmero P (producto) comenzamos a comparar los ltimos 2 bits de la derecha, siguiendo los casos base del recuadro:

Se realizar esta comparacin 8 veces en este ejemplo (nmero de bits de los operandos) y al final de cada comparacin, realizamos un desplazamiento de un bit hacia la derecha, manteniendo el ltimo bit de la izquierda, y descartando el ltimo bit del lado contrario. Si hacemos una traza paso a paso nos quedaran los siguientes resultados:

Finalmente obtenemos el nmero en binario resultante (12 en este ejemplo), descartando el bit extra que hemos aadido al principio del procedimiento y que se encuentra en el extremo a la derecha.

ALGORITMO DE BOOTH PARA DIVISION DE BINARIOS Igual que en el producto, la divisin es muy fcil de realizar, porque no son posibles en el cociente otras cifras que UNOS y CEROS. Consideremos el siguiente ejemplo, 42 : 6 = 7, en binario: Se intenta dividir el dividendo por el divisor, empezando por tomar en ambos el mismo nmero de cifras (100 entre 110, en el ejemplo). Si no puede dividirse, se intenta la divisin tomando un dgito ms (1001 entre 100). Si la divisin es posible, entonces, el divisor slo podr estar contenido una vez en el dividendo, es decir, la primera cifra del cociente es un UNO. En ese caso, el resultado de multiplicar el divisor por 1 es el propio divisor. Restamos las cifras del dividendo del divisor y bajamos la cifra siguiente. El procedimiento de divisin contina del mismo modo que en el sistema decimal.

BIBLIOGRAFIA

Consultado en internet 31 de agosto en http://es.wikipedia.org/wiki/Algoritmo_de_Booth Consultado en internet 31 de agosto http://matematicasparacomputadora.weebly.com/14-algoritmos-de-boothparala-multiplicacioacuten-y-divisioacuten-en-binario.html Consultado en internet 31 de agosto Algoritmo-De-Booth-Para-Divisin-De/6561247.html

10