Suma Binaria

SUMA BINARIA Figura 1: Suma binaria La suma o adición binaria es análoga a la de los números decimales. La diferencia r

Views 79 Downloads 5 File size 787KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

SUMA BINARIA

Figura 1: Suma binaria La suma o adición binaria es análoga a la de los números decimales. La diferencia radica en que en los números binarios se produce un acarreo (carry) cuando la suma excede de uno mientras en decimal se produce un acarreo cuando la suma excede de nueve(9). Del gráfico de la figura 1 podemos sacar las siguientes conclusiones: o

Los números o sumandos se suman en paralelo o en columnas, colocando un numero encima del otro. Todos los números bajo la misma columna tienen el mismo valor posicional.

o

El orden de ubicación de los números no importa (propiedad conmutativa).

Figura 2: Reglas para la suma binaria En la figura 2 se indican las reglas que rigen la suma binaria y en la figura 3 se muestra un circuito lógico llamado semisumador, que suma 2 bits (A y B) que genera un bit de suma y un bit de acarreo cuando este se produce. La operación de un semisumador como el anterior mostrado en la figura se puede sintetizar mediante las siguientes 2 operaciones booleanas: S=A(xor)B (suma) Co=A·B (acarreo) Para realizar una suma binaria donde se tenga presente un carry de entrada se debe implementar un circuito que tenga presente esta nueva variante; como es el caso del sumador completo. El sumador completo tiene 3 entradas que se suman y son: A, B, y Cin (entrada de arrastre), y las salidas habituales S y Co (suma y salida de arrastre)

Figura 3: Semisumador

Figura 4: Sumador completo

http://www.ladelec.com/teoria/electronica-digital/189-suma-binaria

Suma de números Binarios Las posibles combinaciones al sumar dos bits son •0+0=0 •0+1=1 •1+0=1 • 1 + 1 = 10 100110101 + 11010101 —————— 1000001010 Operamos como en el sistema decimal: comenzamos a sumar desde la derecha, en nuestro ejemplo, 1 + 1 = 10, entonces escribimos 0 en la fila del resultado y llevamos 1 (este "1" se llama arrastre). A continuación se suma el acarreo a la siguiente columna: 1 + 0 + 0 = 1, y seguimos hasta terminar todas la columnas (exactamente como en decimal). La suma binaria se puede realizar cómodamente siguiendo las tres reglas descritas: 1º Si el número de unos (en sentido vertical) es par el resultado es 0. 2º Si el número de unos (en sentido vertical) es impar el resultado es 1. 3º Acarreo tantos unos como parejas (completas) de números 1 haya. Por ejemplo: 0 + 0=0, 0+1=1, 1+0=1, 1+1=10 se pone 0 y se acarrea un 1 a la posición siguiente Hay que sumar 1010 (que en decimal es 10) y 1111 (que en decimal es 15). 10 + 15 = 25 10110 100100 10.1 +11100 + 10010 +11.01 110010 110110 101.11 1+1=1 0 + 1 =1 1 + 1 =10 Ejemplo: Sumar: 20 1 0 1 0 0 10 1 0 1 0 30 1 1 1 1 0 1+1=1

0 + 1 =1 1 + 1 =10 24 30 Ejemplo: Sumar: 30 0 1 1 1 1 0 20 1 0 1 0 0 50 1 1 0 0 1 0

Sustracción en binario La técnica de la resta en binario es, nuevamente, igual que la misma operación en el sistema decimal. Pero conviene repasar la operación de restar en decimal para comprender la operación binaria, que es más sencilla. Los términos que intervienen en la resta se llaman minuendo, sustraendo y diferencia. -|0|1| 0|0|1| 1|1+1|0| Las restas 0 - 0, 1 - 0 y 1 - 1 son evidentes: 0–0=0 1–0=1 1–1=0 La resta 0 - 1 se resuelve, igual que en el sistema decimal, tomando una unidad prestada de la posición siguiente: 10 - 1, es decir, 210 – 110 = 1. Esa unidad prestada debe devolverse, sumándola, a la posición siguiente. Veamos algunos ejemplos: 111 – 101 = 010 710 – 510 = 210 10001 – 01010 = 00111 1710 – 1010 = 710 11011001 – 10101011 = 00101110 21710 – 17110 = 4610 111101001 – 101101101 = 001111100 48910 – 36510 = 12410 Primer ejemplo: Hagamos la siguiente resta, 91 – 46 = 45, en binario: 1011011 – 0101110 = 0101101 Multiplicación binaria La multiplicación en binario es más fácil que en cualquier otro sistema de numeración. Como los factores de la multiplicación sólo pueden ser CEROS o UNOS, el producto sólo puede ser CERO o UNO. En otras palabras, las tablas de multiplicar del cero y del uno son muy fáciles de aprender:

x|0|1| 0|0|0| 1|0|1| En un ordenador, sin embargo, la operación de multiplicar se realiza mediante sumas repetidas. Eso crea algunos problemas en la programación porque cada suma de dos UNOS origina un arrastre, que se resuelven contando el número de UNOS y de arrastres en cada columna. Si el número de UNOS es par, la suma es un CERO y si es impar, un UNO. Luego, para determinar los arrastres a la posición superior, se cuentan las parejas de UNOS. Veamos, por ejemplo, una multiplicación: Para comprobar que el resultado es correcto, convertimos los factores y el resultado al sistema decimal: 3349 * 13 = 43537 ¡correcto! Ejercicio 5:

SUSTRACCIÓN O RESTA BINARIA En forma similar a la suma, es conveniente memorizar la siguiente Tabla de restar:

Cuando la tabla anterior se usa en la resta de cantidades de varios bits, se resta columna por columna de LSB a MSB y si aparece el caso de restar 0 - 1 se interpreta como si fuera 10 - 1, resultando un 1 y un acarreo negativo, o préstamo de 1 tomado de la siguiente columna. Ejemplos: 1) restar 101101 - 10101, es decir, 4510 - 2110 2) restar 11101 - 111, es decir, 2910 - 710 2.3.- REPRESENTACIÓN DE NÚMEROS NEGATIVOS. En la construcción de dispositivos digitales que realicen operaciones de resta se puede obtener un considerable ahorro si esta operación es realizada mediante los mismos dispositivos que realizan la suma, de esta manera no es necesario construir dos tipos de dispositivos, y el problema se convierte más bien en cómo manejar adecuadamente los números negativos para realizar restas usando sumas. - MAGNITUD SIGNADA El método de representación de números negativos que consiste en anteponer un signo “-” al valor absoluto de la cantidad se le llama magnitud signada y es el método tradicionalmente usado en decimal, ya que está pensado en su manipulación por humanos.

Ejemplos: -510, -10112, .5EH, ... etc. La principal desventaja del método de magnitud signada es que requiere de dos métodos diferentes, uno para la suma y otro para la resta. SISTEMA DE NUMERACIÓN DE COMPLEMENTO A LA BASE (COMPLEMENTO A DOS) Un método de representación de cantidades negativas que permite realizar restas mediante sumas consiste en representar los números negativos por su complemento, es decir, por lo que les falta para cierta cantidad tomada como base. En el sistema de numeración de complemento a la base r, los números negativos de n dígitos se representan por la cantidad que les falta para completar r,n Es decir, en este sistema, la cantidad -Nr . se representa por su complemento, es decir, como r n -N y en ocasiones se.

SISTEMA BINARIO * RESTA BINARIA La resta binaria es similar a la decimal con la diferencia de tener solo dos dígitos y teniendo en cuenta que al realizar las restas parciales entre 2 dígitos de idénticas posiciones, uno del minuendo y otro del sustraendo, si es el segundo excede al primero, se sustrae una unidad del digito de mas a la izquierda en el minuendo (si existe y vale 1), convirtiéndose este ultimo en 0 equivaliendo la unidad extraída a 1*¨2 en el minuendo de resta parcial que estamos realizando. Es 0 el digito siguiente a la izquierda, se busca en los sucesivos teniendo en cuenta que su valor se multiplica por 2 a cada desplazamiento a la derecha. * MULTIPLICACION BINARIA Consiste en multiplicar dicha fracción por 2, obteniendo en la parte entera del resultado el primero de los 2 digitos binarios de la fracción que buscamos. A continuación, repetimos el mismo proceso con la parte fraccionaria del resultado anterior, obteniendo en la parte entera del nuevo resultado el segundo de los digitos buscados. Iteraremos sucesivamente de esta forma. Hasta que desaparezca la parte fraccionaria de los resultados parciales o hasta que tengamos los suficientes digitos binarios que nos permitan no sobrepasar un determinado error. En una fracción binaria, al igual que en una decimal, puede aparecer un conjunto de digitos que se repitan periodica. * DIVISION BINARIA Este método se utiliza para convertir números enteros en decimal a su respectivo numero entro en binario. Se trata de dividir sucesivamente el numero decimal y los sucesivos cocientes entre 2, hasta que el cociente en una de las divisiones tome el valor 0. La unión de todos los restos obtenidos, escritos en orden inverso, nos proporciona el numero inicial expresado en el sistema binario.

SISTEMA HEXADECIMAL * DIVISION HEXADECIMAL Sirve para convertir números decimales enteros a hexadecimal. Se divide el numero decimal y los cocientes sucesivos por 16 hasta obtener un cociente igual a 0. El... [continua]

http://www.buenastareas.com/ensayos/Suma-Binaria/1795016.html

SUMA DE NÚMEROS BINARIOS Tabla

de

sumar

de

números

Suma consecutiva de números binarios de 1 en 1 hasta completar 10

Suma de dos números binarios Sean los números binarios 00102 y 01102 Primer paso De la misma forma que hacemos cuando sumamos números del sistema decimal, esta operación matemática la comenzamos a realizar de derecha a izquierda, comenzando por los últimos dígitos de ambos sumandos, como en el siguiente ejemplo:

En la tabla de suma de números binarios podemos comprobar que 0 + 0 = 0 Segundo paso

binarios

Se suman los siguientes dígitos 1 + 1 = 10 (según la tabla), se escribe el “0” y se acarrea o lleva un “1”. Por tanto, el “0” correspondiente a tercera posición de izquierda a derecha del primer sumando, adquiere ahora el valor “1”.

Tercer paso Al haber tomado el “0” de la tercera posición el valor “1”, tendremos que sumar 1 + 1 = 10. De nuevo acarreamos o llevamos un “1”, que tendremos que pasar a la cuarta posición del sumando. Cuarto paso

El valor “1” que toma el dígito “0” de la cuarta posición lo sumamos al dígito “0” del sumando de abajo. De acuerdo con la tabla tenemos que 1+ 0 = 1.

El resultado final de la suma de los dos números binarios será: 1 0 0 0.

http://www.asifunciona.com/informatica/af_binario/af_binario_5.htm

RESTA BINARIA

Figura 5: Resta binaria

La resta o sustracción de números binarios es similar a los números decimales. La diferencia radica en que, en binario, cuando el minuendo es menor que el sustraendo, se produce un préstamo o borrow de 2, mientras que en decimal se produce un préstamo de 10. Al igual que en la suma, el proceso de resta binaria, se inicia en la columna correspondiente a la de los dígitos menos significativos. En la figura 5 se indican las reglas que rigen la resta binaria y en la figura 6 se muestra un circuito lógico, llamado semirrestador (HS), que sustrae un B de un bit A y suministra un bit de diferencia (Di) y un bit de préstamo (Bo).

La operación de un Semirrestador como el mostrado en la figura anterior se puede resumir mediante las 5 ecuaciones booleanas: Di=A·B(neg)+A(neg)·B= A(xor)B (diferencia) Bi=A(neg).B (borrow) En la figura siguiente se muestra el proceso de resta de 2 números binarios de 5 bits. El objeto de esta operación es ilustrar el manejo de los préstamos y plantear la necesidad de un restador completo de 2 bits que tenga, como entradas, el minuendo, el sustraendo, y el préstamo anterior y ofrezca como salidas, la diferencia y el préstamo, si existe. En la figura 7 se muestra el diagrama de bloques, conexión en bloques utilizando semirrestadores y una puerta OR y el diagrama lógico de un restador completo.

Figura 6: Semirrestador

Figura 7: Restador completo

http://www.ladelec.com/teoria/electronica-digital/190-resta-binaria

Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática. Vicente Arnau Llombart 12/11/2010

Divisores Binarios. La operación de división es algo más compleja que la multiplicación, pero también se realiza en la mayoría de computadores mediante un circuito sumador/restador y algún algoritmo adecuado. Dado dos operandos, el dividendo D y el divisor d, el objetivo de la división es calcular el cociente Q y el resto R tal que D = d *Q + R con la condición de que el resto sea menor que el divisor, es decir 0Rd. Los circuitos que realizan la multiplicación y la división son análogos, pues el producto se puede realizar por sumas sucesivas y el cociente se puede realizar mediante restas sucesivas. Vamos a ver

primero el método de lápiz y papel para los números binarios positivos. Para ello seguiremos el siguiente algoritmo: 1. Examinar los bits del dividendo de izquierda a derecha hasta encontrar una cadena mayor que el divisor. 2. Se coloca un 1 en el cociente y se procede a restar el divisor al dividendo. 3. Ahora empieza unas acciones cíclicas: al resto se le añade una cifra del dividendo, si no es mayor que el divisor se añade un 0 al cociente y se baja otra cifra; así hasta que el nuevo resto sea mayor que el divisor y entonces se añade un 1 al cociente y se procede a restar el divisor del resto actual. 4. Este proceso se repite hasta que se acaban todos los bits del dividendo. Ejemplo: D = 39 = 1 0 0 1 1 1 d = 6 = 1 1 0 1 0 0 1 1 1 | 1 1 0 1 1 0 no resta 0 1 1 0 Cociente resto parcial 1 0 0 1 1 1 0 resta resto parcial 0 0 1 1 1 1 1 0 resta resto parcial 0 0 0 0 1 1 1 1 0 no resta Resto 0 0 0 0 1 1 Cociente = 6 = 1 1 0 Resto = 3 = 1 1 El algoritmo de la división se basa en prueba y error. Al igual que con los números en decimal, la división binaria busca el número que multiplicado por el divisor nos da el mayor número que se puede restar al dividendo sin que nos dé un valor negativo. En la división binaria los valores a probar son siempre o el uno o el cero, primero probamos con el uno esto nos hará restar al dividendo el divisor, eligiendo los Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática. Vicente Arnau Llombart 12/11/2010

bits adecuados, si la resta es negativa en vez de un uno cambiamos por un cero y bajamos una nueva cifra, si el resultado fue positivo dejamos el valor de la resta al cual se le añade una nueva cifra del dividendo y seguimos con la operación. Pero a la hora de realizar un circuito digital que realice la división es mejor cambiar un poco el método y en vez de desplazar el divisor a la derecha, desplazaremos el resto parcial a la izquierda ( en la práctica es como multiplicarlo por 2) y operamos con el divisor fijo. Veamos como realizaríamos la anterior división con esta variante al método propuesto. Ejemplo: D = 39 = 1 0 0 1 1 1 d = 6 = 1 1 0 1 0 0 1 1 1 | 1 1 0 1 1 0 no resta 0 1 1 0 Cociente R1 1 0 0 1 1 1 2*R1 1 0 0 1 1 1 0 1 1 0 resta R2 0 1 1 1 1 0 2*R2 0 1 1 1 1 0 0 1 1 0 resta R3 0 0 1 1 1 0 2*R3 0 0 1 1 1 0 0 1 1 0 no resta Resto 0 1 1 Cociente = 6 = 1 1 0 Resto = 3 = 1 1 El problema es que el último resto parcial Rn no contiene exactamente el resto, pues el valor verdadero se calcula como

R = Rn * 2-n Está claro que es más difícil de automatizar la división debido al proceso de ensayo. Las tareas a realizar por el circuito son: acomodar metódicamente el divisor con relación al dividendo y realizar una sustracción, en complemento a dos. Si el resultado es cero o positivo, se pone el bit cociente como 1, el resultado de la resta se amplía con otro dígito del dividendo y el divisor se acomoda para otra sustracción. Esta técnica se realiza utilizando una estructura de registro similar a la que se utilizó para realizar la multiplicación, y se muestra en el circuito de la hoja siguiente. Ejemplo: Realizar segun el método de la división con restauración el siguiente cociente: D/d. D = 8 (1000) d = 3 (0011) con (-3) = (1101) Ac D d Inicialmente: 0000 1000 0011 Finalmente: 0010 0010 0011 resto cociente Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática. Vicente Arnau Llombart 12/11/2010

División por el método de restauración. Tal como se ha indicado, para evitar la utilización de circuitos comparadores de elevado coste, la comparación se realiza entre el dividendo y el divisor se realiza mediante una resta. Al realizar la resta, una respuesta positiva indica que el divisor es más pequeño, y se coloca un 1 en el cociente. Una respuesta negativa indica que el divisor es mayor y por tanto que la resta no era necesaria, por lo que hay que volver a sumar el divisor al dividendo. A esta operación se le llama restaurar el valor original del dividendo, dándole nombre al método. Todo este proceso se puede realizar sobre la estructura de registros vistos anteriormente y utilizando el algoritmo descrito a continuación: Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática. Vicente Arnau Llombart 12/11/2010 Ampliación de Estructura de Computadores. Curso 2010-11 3º de Ingeniería Informática. Vicente Arnau Llombart 12/11/2010

División sin restauración. Es posible acelerar este algoritmo mediante la eliminación de la restauración que implica una suma para volver a recobrar un dato. Para ello debemos darnos cuenta de que si la restauración la escribimos como

(Rj)A