Aritmetica Binaria - Sistemas Digitales I

Anuncio
Capítulo 2
Aritmética Binaria Entera
• 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:
O Tabla de sumar:
+
0
1
0
0
1
1
1
10
F 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, 4510 + 2110
Acarreos:
+
1 1 1
1
101101
10101
100100
Acarreos:
+
2) sumar 11101 + 111, es decir, 2910 + 710
10
1
2910
710
3610
Capítulo 2
Aritmética Binaria Entera
Acarreos:
1 1 1 1
Acarreos:
11101
+ 00111
100100
1
2910
710
3610
+
q
2.2.- SUSTRACCIÓN O RESTA BINARIA
En forma similar a la suma, es conveniente memorizar la siguiente
O Tabla de restar:
0
1
0
0
1
1
-1
0
F 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
Préstamos: -1
+
101101
10101
011000
4510
2110
2410
-
2) restar 11101 - 111, es decir, 2910 - 710
Préstamos:
-1 -1
11101
+ 00111
10110
+
2910
710
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 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.
2.3.1.- MAGNITUD SIGNADA
O 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.
11
Capítulo 2
Aritmética Binaria Entera
F 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.
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 sumas
consiste en representar los números negativos por su complemento, es decir, por lo que les falta
para 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 se
representan 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ún
cambio.
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 para
indicar 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=00000101
Complemento 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 el
complemento 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
?
12
Capítulo 2
Aritmética Binaria Entera
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 complemento
entonces: [1101011]2 = -2110
q
Ejemplo: Si (01101011)2 es un número de 8 bits, incluyendo el bit signo. Cuál es su equivalente
decimal?.
Como el bit signo es = 0, el número es positivo y el resto de los bits indican su magnitud.
número positivo:
valor absoluto :
0 1 1 0 1 0 1 1 = 10710
01101011
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:
16
535
33
--> 7
2
--> 1
0
--> 2
Por tanto (+535)10 = (010 0001 0111)2
(+535)10 = 010 0001 0111
101 1110 1001: complemento a dos
por 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 este
sistema un número negativo -N de n dígitos en base r se representa por lo que le falta para llegar a
rn-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
13
Capítulo 2
Aritmética Binaria Entera
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 si
para obtener el complemento usamos la definición, ya que esta requiere una resta. A continuación se
describen 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:
se invierten los bits restantes:
resultando finalmente:
ò
100
01001
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= 010110
se invierten todos los bits (complemento a 1):
101001
se suma 1 al resultado:
+1
resultando 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 el
concepto 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 en
complemento 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:
14
Capítulo 2
Aritmética Binaria Entera
Complemento a 2
000
001
010
011
100
101
110
111
Decimal
0
1
2
3
-4
-3
-2
-1
entonces el rango es de -4 a +3. No es difícil concluir que en general el rango representable con n
bits 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, el
resultado (5) no podrá ser expresado con tres bits, ya que se sale del rango y se tendrá un
sobreflujo.
Ejemplo: Realizar las siguientes sumas en binario de complemento a dos, usando 4 bits. Indicar el
signo del resultado y en donde se produce sobreflujo:
a) 4+3
b) -4 + 5
0100
+0011
0111
El resultado es positivo y no hay sobreflujo
1100
+0101
10001
El resultado es positivo y no hay sobreflujo
c) -4 - 5
1100
+1011
10111
El resultado es positivo, lo cual no puede ser pues se están
sumando dos datos negativos e hay sobreflujo.
d) 6 + 5
0110
+0101
1011
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 menos
5 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 y
deberá 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 bit
signo. 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.
15
Capítulo 2
Aritmética Binaria Entera
Ejemplo: Efectúe las siguientes operaciones y exprese el resultado en decimal con su signo (MSB =
bit signo)
a).-
01111011
+ 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).-
10010111
+ 1 0 1 0 0 1 1 0 como los signos son iguales, el acarreo es el bit de signo del resultado
100111101
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 la
siguiente
O Tabla de multiplicar:
*
0
1
0
0
1
1
0
0
Sin embargo, al realizar multiplicaciones de números de varios bits, usamos las mismas reglas de la
multiplicación decimal. de manera que una multiplicación de este tipo se convierte al final en varias
sumas.
Ejemplo:
1011
*101
1011
0000
+1011
110111
1110
*510
5510
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ás
sistematizada como se indica enseguida, de acuerdo a los bits del multiplicador, comenzando por el
LSB hacia el MSB. El algoritmo descrito a continuación es especialmente útil si la multiplicación va a
ser realizada por una máquina digital (circuitos o computadora digital).
16
Capítulo 2
Aritmética Binaria Entera
: 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 resultado
parcial. 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 el
multiplicando 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
0010001
+0010001- - 0010011001
+ 0010001 00110101001
- 00110101001
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 se
usa en la división decimal.
Ejemplo:
0001010
1001
1011101
-1 0 0 1
001010
-1001
00011
Cociente
10
9
93
3
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 y
corrimientos.
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
17
Capítulo 2
Aritmética Binaria Entera
en el cociente, en caso contrario el dígito será 0. Después de cada paso se hace un corrimiento del
divisor hacia la derecha.
Ejemplo: La división 5710 /310:
0 1 0 0 1 1 Cociente
divisor 1 1
1 1 1 0 0 1 dividendo
1 Corrimiento 1 1 0 0 0 0 0
111001
2do Corrimiento
-1 1 0 0 0 0
001001
3er Corrimiento
011000
001001
4to Corrimiento
001100
001001
5to Corrimiento
-0 0 0 1 1 0
000011
6to Corrimiento
-0 0 0 0 1 1
000000
er
18
no se efectúa resta
se efectúa resta
no se efectúa resta
no se efectúa resta
se efectúa resta
se efectúa resta
residuo
Descargar