Aritmetica Binaria

9
Aritmética Binaria Entera Una de las principales aplicaciones de la electrónica digital es el diseño de dispositivos capaces de efectuar cálculos aritméticos, ya sea como principal objetivo (calculadoras, computadoras, máquinas registradoras, etc.) o bien, como una subfunción que les permita realizar su cometido principal (medidores, controladores, registradores, etc.) Por ello, y dado que los sistemas digitales sólo pueden manejar información binaria, es necesario entender las operaciones aritméticas fundamentales en términos del sistema de numeración binario. En este capítulo se tratan las operaciones fundamentales en el sistema binario solamente para números enteros. Un tratamiento más general debe contener un tratamiento de números fraccionarios, es decir, la aritmética de punto fijo y la de punto flotante. La primera de estas dos es una extensión casi inmediata del la aritmética entera. Notación En este capítulo cuando no se anote el subíndice de un número que sólo contiene unos y ceros se sobreentenderá que está en binario. 2.1.- ADICIÓN O SUMA BINARIA En forma similar a como realizamos las sumas en decimal, para realizarlas en otros sistemas es necesario aprender de memoria algunas sumas básicas, especialmente las sumas de dígito con dígito; en decimal éstas son 100 sumas (tablas de sumar), mientras que en binario son sólo 4, puesto que en binario sólo hay dos dígitos: Tabla de sumar: 10 1 1 1 0 0 1 0 + Cuando la tabla anterior se usa en una suma de cantidades de varios bits, se suma columna por columna de LSB a MSB y si aparece el caso 1+1, se anota el 0 y se acarrea el 1 a la siguiente columna. Ejemplos: 1) sumar 101101 + 10101, es decir, 45 10 + 21 10 Acarreos: 1 1 1 1 Acarreos: 1 1 0 1 1 0 1 29 10 + 1 0 1 0 1 + 7 10 1 0 0 1 0 0 36 10 2) sumar 11101 + 111, es decir, 29 10 + 7 10 Capítulo 2 Aritmética Binaria Entera 10

description

Información sobre la utilización del método binario.

Transcript of Aritmetica Binaria

Page 1: Aritmetica Binaria

�� Aritmética Binaria Entera

⌦ Una de las principales aplicaciones de la electrónica digital es el diseño de dispositivos capacesde efectuar cálculos aritméticos, ya sea como principal objetivo (calculadoras, computadoras,máquinas registradoras, etc.) o bien, como una subfunción que les permita realizar su cometidoprincipal (medidores, controladores, registradores, etc.) Por ello, y dado que los sistemasdigitales sólo pueden manejar información binaria, es necesario entender las operacionesaritméticas fundamentales en términos del sistema de numeración binario. En este capítulo setratan las operaciones fundamentales en el sistema binario solamente para números enteros. Untratamiento más general debe contener un tratamiento de números fraccionarios, es decir, laaritmética de punto fijo y la de punto flotante. La primera de estas dos es una extensión casiinmediata del la aritmética entera.

@ NotaciónEn este capítulo cuando no se anote el subíndice de un número que sólo contiene unos yceros se sobreentenderá que está en binario.

2.1.- ADICIÓN O SUMA BINARIA

En forma similar a como realizamos las sumas en decimal, para realizarlas en otros sistemas esnecesario aprender de memoria algunas sumas básicas, especialmente las sumas de dígito con dígito;en decimal éstas son 100 sumas (tablas de sumar), mientras que en binario son sólo 4, puesto queen binario sólo hay dos dígitos:

O Tabla de sumar:

101110010+

F Cuando la tabla anterior se usa en una suma de cantidades de varios bits, se suma columna porcolumna de LSB a MSB y si aparece el caso 1+1, se anota el 0 y se acarrea el 1 a la siguientecolumna.

Ejemplos:

1) sumar 101101 + 10101, es decir, 4510 + 2110

Acarreos: 1 1 1 1 Acarreos: 1

1 0 1 1 0 1 2910

+ 1 0 1 0 1 + 710

1 0 0 1 0 0 3610

2) sumar 11101 + 111, es decir, 2910 + 710

Capítulo 2 Aritmética Binaria Entera

10

Page 2: Aritmetica Binaria

Acarreos: 1 1 1 1 Acarreos: 1

1 1 1 0 1 2910

+ 0 0 1 1 1 + 710

1 0 0 1 0 0 3610 q

2.2.- SUSTRACCIÓN O RESTA BINARIA

En forma similar a la suma, es conveniente memorizar la siguiente

O Tabla de restar:

011-10010-

F Cuando la tabla anterior se usa en la resta de cantidades de varios bits, se resta columna porcolumna 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

Préstamos: -1

1 0 1 1 0 1 4510

+ 1 0 1 0 1 -2110

0 1 1 0 0 0 2410

2) restar 11101 - 111, es decir, 2910 - 710

Préstamos: -1 -1

1 1 1 0 1 2910

+ 0 0 1 1 1 + 710

1 0 1 1 0 2210 q

2.3.- REPRESENTACIÓN DE NÚMEROS NEGATIVOS.

En la construcción de dispositivos digitales que realicen operaciones de resta se puede obtener unconsiderable ahorro si esta operación es realizada mediante los mismos dispositivos que realizan lasuma, de esta manera no es necesario construir dos tipos de dispositivos, y el problema se conviertemás bien en cómo manejar adecuadamente los números negativos para realizar restas usando sumas.

2.3.1.- MAGNITUD SIGNADA

O El método de representación de números negativos que consiste en anteponer un signo “-” al valorabsoluto de la cantidad se le llama magnitud signada y es el método tradicionalmente usado endecimal, ya que está pensado en su manipulación por humanos.

Ejemplos: -510, -10112, .5EH, ... etc.

Capítulo 2 Aritmética Binaria Entera

11

Page 3: Aritmetica Binaria

F La principal desventaja del método de magnitud signada es que requiere de dos métodosdiferentes, uno para la suma y otro para la resta.

2.3.2.- 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 sumasconsiste en representar los números negativos por su complemento, es decir, por lo que les faltapara cierta cantidad tomada como base.

O En el sistema de numeración de complemento a la base r, los números negativos de n dígitos serepresentan por la cantidad que les falta para completar rn. Es decir, en este sistema, la cantidad -Nr

se representa por su complemento, es decir, como rn-N y en ocasiones se denota [N]r.

Ejemplos:

1) Caso decimal (complemento a 10) para 2 dígitos (r=10, n=2) -1510 = 102 - 15 = [85]10

De esta manera, una resta como 45 - 15, se puede realizar mediante la suma 45 + 85 =(1)30,despreciando el acarreo indicado entre paréntesis, ya que sólo se están usando 2 dígitos.

2) Caso binario (complemento a 2) para 4 dígitos (r=2, n=4) -01012 = (10000 - 0101)2 = [1011]2

De esta manera, una resta como 1010, se puede realizar mediante la suma 1010 - 0101 + 1011 0101 (1)0101

despreciando el acarreo indicado entre paréntesis, ya que sólo se están usando 4 dígitos. q

Observación: En el sistema de complemento a dos los número positivos se escriben sin ningúncambio.

O Bit de signo (S)

En el sistema de numeración de complemento a dos el MSB se denomina bit de signo y se usa paraindicar el signo del número representado, de acuerdo a la siguiente convención:

S = 0 El número es positivo y el resto de los bits indica su magnitud directamente.S = 1 El número es negativo y está en la forma complementada

Ejemplo: Expresar +5 y -5 en una palabra de 8 bits en el sistema de complemento a 2.

+ 5 es positivo y se expresará directamente pro su magnitud en binario como 0000101 - 5 es negativo y estará expresado en la forma de complemento a 2 como: + 5 = 0 0 0 0 0 1 0 1Complemento a 2: 1 1 1 1 1 0 1 1 = - 510

Obsérvese que de acuerdo a esta convención del sistema de complemento a dos, al aplicar elcomplemento a 2 a un número binario, equivale a cambiarle el signo (multiplicar por -1) q

Ejemplo: 11010112 es un número de 7 bits, incluyendo el bit signo. ¿Cuál es su equivalente decimal?

Capítulo 2 Aritmética Binaria Entera

12

Page 4: Aritmetica Binaria

Como el bit signo es = 1, el número es negativo y se encuentra en su forma complementada.

1 1 0 1 0 1 1 : número negativo 0 0 1 0 1 0 1 : valor absoluto (complemento a dos del número)

21 : equivalente decimal del complementoentonces: [1101011]2 = -2110 q

Ejemplo: Si (01101011)2 es un número de 8 bits, incluyendo el bit signo. Cuál es su equivalentedecimal?.

Como el bit signo es = 0, el número es positivo y el resto de los bits indican su magnitud.

número positivo: 0 1 1 0 1 0 1 1 = 10710

valor absoluto : 0 1 1 0 1 0 1 1

entonces (01101011)2 =+10710 q

Ejemplo: Cuál es el equivalente en binario de complemento a dos de (-535)10 ?

Usaremos hexadecimal como paso intermedio a binario. Convirtiendo +535 a Hexadecimal:

--> 20

--> 12

--> 733

53516

Por tanto (+535)10 = (010 0001 0111)2 (+535)10 = 010 0001 0111

101 1110 1001: complemento a dospor lo tanto (-535)10 = [101 1110 1001]2

Obsérvese que para indicar este resultado se requieren por lo menos 11 bits q

2.3.3.- COMPLEMENTO A LA BASE DISMINUIDA

Una alternativa al sistema de complemento a la base es el complemento a la base menos 1. en estesistema un número negativo -N de n dígitos en base r se representa por lo que le falta para llegar arn-1 y se suele denotar por [N]r-1, es decir, [N]r-1 = rn - 1 - N. en otra palabras, [N]r-1 = [N]r -1.

Ejemplos:

1) Caso decimal (complemento a 9) para 2 dígitos (r=10, n=2) -1510 = 102 - 1 - 15 = 99 - 15 = [84]9

De esta manera, una resta como 45 - 15, se puede realizar mediante la suma 45 + 84 =(1)+29,(sumando el acarreo indicado entre paréntesis como una corrección del resultado).

2) Caso binario (complemento a 2) para 4 dígitos (r=2, n=4) -01012 = (10000 - 1 - 0101)2 = (1111 - 0101)2 = [1010]1

Capítulo 2 Aritmética Binaria Entera

13

Page 5: Aritmetica Binaria

De esta manera, una resta como 1010, se puede realizar mediante la suma 1010 - 0101 + 1010 0101 (1)0100

+ 1 0101

(sumando el acarreo indicado entre paréntesis). q

2.3.4.- OBTENCIÓN DE COMPLEMENTOS BINARIOS SIN USAR RESTAS.

La ventaja que provee el sistema de complementos al convertir una resta en una suma no sería tal sipara obtener el complemento usamos la definición, ya que esta requiere una resta. A continuación sedescriben dos algoritmos que permiten obtener el complemento a 2 sin usar restas:

Algoritmo 1@ 1) Se copian los bits del número de LSB a MSB hasta encontrar el primer bit 1.

2) Se prosigue invirtiendo los bits restantes (es decir, cambiando 1’s por 0’s y 0’s por 1’s)hasta llegar al MSB.

Ejemplo. Para obtener el complemento a 2 de N=10110100ò

se copian los primeros bits hasta el primer 1: 100ò

se invierten los bits restantes: 01001resultando finalmente: 01001100 q

Algoritmo 2@ 1) Se obtiene el complemento a 1 del número invirtiendo todos sus bits.

2) Se suma 1 al resultado anterior.

Ejemplo. para obtener el complemento a 2 de N= 010110se invierten todos los bits (complemento a 1): 101001se suma 1 al resultado: +1resultando finalmente: 101011 q

2.3.5.- SUMAS Y RESTAS USANDO COMPLEMENTO A DOS.

A continuación se dan algunos ejemplos de restas usando complemento a dos, se introduce elconcepto de sobreflujo y el de bit de signo.

O Sobreflujo. Se dice que una operación (en el sistema de complemento a dos) produce un sobreflujo,cuando el resultado requiere más bits que los que se están usando en la operación.

Para visualizar el concepto de sobreflujo, es conveniente tener en mente el rango representable encomplemento a dos con n bits.

Ejemplo: ¿Cuál es el rango de números representables en complemento a dos con 3 bits?En este caso es simple representar todos los números e interpretarlos en decimal:

Capítulo 2 Aritmética Binaria Entera

14

Page 6: Aritmetica Binaria

Complemento a 2 Decimal000 0001 1010 2011 3100 -4101 -3110 -2111 -1

entonces el rango es de -4 a +3. No es difícil concluir que en general el rango representable con nbits será de -2n-1 a +2n-1-1. q

F De acuerdo al ejemplo anterior, si intentamos sumar (por ejemplo) 3+2 usando tres bits, elresultado (5) no podrá ser expresado con tres bits, ya que se sale del rango y se tendrá unsobreflujo.

Ejemplo: Realizar las siguientes sumas en binario de complemento a dos, usando 4 bits. Indicar elsigno del resultado y en donde se produce sobreflujo:

a) 4+3 0 1 0 0 + 0 0 1 1

0 1 1 1 El resultado es positivo y no hay sobreflujo

b) -4 + 5 1 1 0 0 + 0 1 0 1 1 0 0 0 1 El resultado es positivo y no hay sobreflujo

c) -4 - 5 1 1 0 0 + 1 0 1 1 1 0 1 1 1 El resultado es positivo, lo cual no puede ser pues se están

sumando dos datos negativos e hay sobreflujo.

d) 6 + 5 0 1 1 0 + 0 1 0 1 1 0 1 1 El resultado es negativo, lo cual no puede ser pues se están

sumando dos datos positivos e hay sobreflujo.

e) 9 + 2 Esta operación NO se puede realizar con 4 bits, ya que el 9 requiere al menos5 bits para ser expresado en el sistema de complemento a 2 . q

Interpretación del acarreo en el resultado de sumas en complemento a 2

"Si los signos de los números que se suman son diferentes, cualquier acarreo obtenido es falso ydeberá de ser ignorado".

Ejemplo: Ver inciso (b) del ejemplo anterior.

"Si los signos de los números que se suman son iguales, el acarreo es verdadero y actúa como el bitsigno. En ausencia de acarreo se considera que este es 0, así la respuesta es positiva".

Ejemplos ver incisos (a), (c) y (d) del ejemplo anterior.

Capítulo 2 Aritmética Binaria Entera

15

Page 7: Aritmetica Binaria

Ejemplo: Efectúe las siguientes operaciones y exprese el resultado en decimal con su signo (MSB =bit signo)

a).- 0 1 1 1 1 0 1 1 + 1 0 1 1 0 0 1 0 como los signos de los números son 1 0 0 1 0 1 1 0 1 diferentes, el acarreo se ignora

bit signo = 0 = + resultado = + 00101101 = +4510

b).- 1 0 0 1 0 1 1 1 + 1 0 1 0 0 1 1 0 como los signos son iguales, el acarreo es el bit de signo del resultado 1 0 0 1 1 1 1 0 1 acarreo = bit signo = 1 = - resultado =- complemento a 2 de 00111101 = -11000011 = - 19510 q

2.4.- MULTIPLICACIÓN BINARIA

El conjunto básico de multiplicaciones de un sólo bit que hay que memorizar se resume en lasiguiente

O Tabla de multiplicar:

01100010*

Sin embargo, al realizar multiplicaciones de números de varios bits, usamos las mismas reglas de lamultiplicación decimal. de manera que una multiplicación de este tipo se convierte al final en variassumas.

Ejemplo:

1 0 1 1 1110

* 1 0 1 *510

1 0 1 1 5510

0 0 0 0 + 1 0 1 1 1 1 0 1 1 1

2.4.1.- MULTIPLICACIÓN POR SUMAS Y CORRIMIENTOS

Como se puede observar en el ejemplo, la multiplicación puede realizarse en una forma mássistematizada como se indica enseguida, de acuerdo a los bits del multiplicador, comenzando por elLSB hacia el MSB. El algoritmo descrito a continuación es especialmente útil si la multiplicación va aser realizada por una máquina digital (circuitos o computadora digital).

Capítulo 2 Aritmética Binaria Entera

16

Page 8: Aritmetica Binaria

: Algoritmo

1) Si el primer bit en el multiplicador es 1, anote el multiplicando como resultado parcial.

2) Si el primer bit del multiplicador es 0; anote ceros como resultado parcial.

3) Se recorre el multiplicando un lugar a la izquierda.

4) Por cada 1 en el multiplicador después del primer bit sume el multiplicando al resultadoparcial. Enseguida recorra el multiplicando un lugar a la izquierda.

5) Por cada cero en el multiplicador después del primer bit, no sume, únicamente recorra elmultiplicando un lugar a la izquierda.

6) Repita el procedimiento hasta incluir todos los bits del multiplicador.

Ejemplo: 0 0 1 0 0 0 1 multiplicando * 0 0 1 1 0 0 1 multiplicador 0 0 1 0 0 0 1 + 0 0 1 0 0 0 1 - - - 0 0 1 0 0 1 1 0 0 1 + 0 0 1 0 0 0 1 - 0 0 1 1 0 1 0 1 0 0 1 - - 0 0 1 1 0 1 0 1 0 0 1 producto Comprobando en decimal: (17)10 * (25)10 = (425)10 q

2.5.- DIVISIÓN BINARIA

En la división de números binarios se puede aplicar el mismo procedimiento de prueba y error que seusa en la división decimal.

Ejemplo:

0 0 0 1 0 1 0 Cociente 10

9391 0 1 1 1 0 11 0 0 1 -1 0 0 1 3 0 0 1 0 1 0 - 1 0 0 1 0 0 0 1 1 Residuo

2.5.1 DIVISIÓN POR RESTAS Y CORRIMIENTOS

En forma similar a la multiplicación, la división se puede sistematizar para realizarla por restas ycorrimientos.

En este algoritmo el cociente es obtenido bit por bit, así, cada siguiente sólo puede ser 0 ó 1. Asícomenzando de izquierda a derecha, si se puede substraer el divisor del dividendo, se anotará un 1

Capítulo 2 Aritmética Binaria Entera

17

Page 9: Aritmetica Binaria

en el cociente, en caso contrario el dígito será 0. Después de cada paso se hace un corrimiento deldivisor hacia la derecha.

Ejemplo: La división 5710 /310:

0 1 0 0 1 1 Cociente

1 1 1 0 0 1 dividendodivisor 1 1

1er Corrimiento 1 1 0 0 0 0 0 no se efectúa resta 1 1 1 0 0 1 2do Corrimiento -1 1 0 0 0 0 se efectúa resta 0 0 1 0 0 1 3er Corrimiento 0 1 1 0 0 0 no se efectúa resta

0 0 1 0 0 1 4to Corrimiento 0 0 1 1 0 0 no se efectúa resta

0 0 1 0 0 1 5to Corrimiento -0 0 0 1 1 0 se efectúa resta

0 0 0 0 1 1 6to Corrimiento -0 0 0 0 1 1 se efectúa resta

0 0 0 0 0 0 residuo

Capítulo 2 Aritmética Binaria Entera

18