complementos

10

Upload: nellychica

Post on 18-Dec-2014

9.727 views

Category:

Documents


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Complementos
Page 2: Complementos

LOS COMPLEMENTOS.

El problema que se trata de resolver es la forma de expresar números negativos en el sistema binario, valiéndonos únicamente de señales que solo pueden ser verdaderas o falsas. Es cierto que una de las señales podría representar el signo y el resto de las cifras formarían siempre un valor positivo, pero la electrónica del dispositivo sería compleja porque debería ser capaz de restar cuando encontrara el signo menos.

Parece imposible, pero los complementos permiten hacer restas mediante sumas y reducen con ello la electrónica de la máquina. ¿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.

Page 3: Complementos

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 máquina transforma uno de los datos de manera que resuelve la resta haciendo una suma.

Las reglas de la transformación tienen que ser muy simples ya que de lo contrario no compensaría el esfuerzo y tratándose 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.

Page 4: Complementos

Complemento a uno

El complemento a uno de un número binario es una operación matemática muy importante en el campo de la computación, ya que nos permite la representación binaria de números negativos. Se obtiene al cambiar cada uno de los dígitos del número binario N por su complementario, esto es, cambiar los unos por ceros y los ceros por unos.

Por ejemplo:

Número binario = (1010110)2 = (86)10

Complemento a uno = (0101001)2 = ( − 86)10

Podemos referirnos al complemento a uno como la función complemento a uno , que también se puede definir como el complemento a dos menos una unidad, es decir . Es trivial a partir de la definición anterior, que el complemento a dos se puede definir como.

Page 5: Complementos

Por ejemplo, vamos a calcular el complemento a 1 del número (45)10 que,

expresado en binario (101101)2 tiene 6 dígitos:

N = 45; n = 6; 26 = 64

Su complemento a dos es: y, su complemento a uno es una unidad más pequeño:

010011 -000001 ------------ 010010

Existe una desventaja a la hora de utilizar el complemento a uno para representar números negativos que hace más adecuado el complemento a dos, y es que existen dos posibles representaciones para el número cero.

Page 6: Complementos

Ejemplo: En Complemento a 1, para n = 16, el número -950310 se escribe calculando el Complemento a

la Base Menos 1 del número 950310 escrito en base 2, es decir, del número 100101000111112:

C1(N) = C1(10010100011111) =

= 2n - 1 - N =

= 216 - 1 - 10010100011111 =

= 10000000000000000 - 1 - 10010100011111 =

= 1101101011100000C1

En consecuencia,

-950310 = 1101101011100000C1

Obsérvese que, el Complemento a 1 de un número entero positivo (N) escrito en binario es el resultado de cambiar todos los bits de valor, es decir, todos los ceros por unos y todos unos por ceros.

Page 7: Complementos

Por otra parte, dado un número entero positivo (N) en Complemento a 1, para calcular su valor en base 10, se puede utilizar la misma fórmula que en Signo Magnitud o que en Binario Puro.

Un número (N) representado en Complemento a 1 es positivo si el bit más significativo es cero.

En caso contrario, el número será negativo, y para calcular su valor en base 10, habrá que cambiar todos los unos por ceros y todos los ceros por unos, obteniendo así su correspondiente número positivo, al cual sí se le puede aplicar una de las fórmulas anteriores y cambiarle el signo al resultado.

Page 8: Complementos

SISTEMA DE NÚMEROS EN COMPLEMENTO A 2

Este es un sistema que nos permite representar números binarios de forma negativa, en donde el MSB (Bit mas Significativo) es el bit del signo.

Si este bit es 0 entonces el numero binario es positivo (+), si el bit del signo es 1, entonces el numero es negativo(-) los siete bits restantes del registro representan la magnitud del numero 1010110, para complementar mejor la explicación tendremos que dedicarle mucha atención a la explicación de conversiones donde interviene este tipo de numeración, que es bastante utilizado en los microprocesadores, ya que estos manejan tanto números positivos como números negativos.

Muchas computadoras digitales utilizan un sistema numérico de complemento a base a fin de minimizar la cantidad de circuitos necesarios para realizarla aritmética de enteros.

Por ejemplo, se puede realizar la operación A - B calculando A + (- B) donde (- B) está representado por el complemento a 2 de B. Por tanto, la computadora sólo necesita un sumador binario y algunos circuitos complementarios para la suma y la resta.

Las máquinas que utilizan el sistema numérico de complemento a 2 pueden representar enteros en el intervalo –2n-1 £ N £ 2n-1-1, donde n es el número de bits disponibles para representar a N.

Observe que 2n-1-1=(0,11...1)2ms y que –2n-1=(1,00...0)2ms, donde el bit extremo representa el signo y los n-1 bits restantes representan la magnitud.

Se considerarán tres casos para ilustrar la aritmética en el sistema numérico de complemento a dos: A=B+C, A=B-C y A=-B-C. Se describirá cada caso en general y para todos los casos se supondrá que B³ 0 y C³ 0. Los resultados se pueden generalizar fácilmente, si B y C son negativos.

Page 9: Complementos

Caso 1:Calcular A=B+C. Como B y C son positivos, A también lo será, y esto se convierte simplemente en (A)2 = (B) 2 + (C) 2 Como los tres números son positivos, no hay que utilizar complemento a dos. Cuando A> 2n-1-1, es decir, cuando hay desbordamiento existe una dificultad. Es fácil detectar tal condición, ya que el bit del signo de A será incorrecto.

Ejemplo.Calcule (9)10 + (5)10 con aritmética de complemento a dos de 5 bits.

+(9) 10 = +(1001) 2 = (0,1001) 2ms +(5) 10 = +(0101) 2 = (0,0101) 2ms Al sumar estos códigos de 5 bits se obtiene

0 1 0 0 1 0 0 1 0 1______________________ + 0 1 1 1 0

Como el resultado también tiene un bit de signo 0, representa correctamente la suma derecha, que se interpreta como, (0,1110)2ms = +(1110)2 = (14)10

Page 10: Complementos

Caso 2:Calcular A = B - C. Se considera este cálculo como A = B +(- C) de la siguiente manera:A = (B)2 + (- (C)2)A = (B)2 + [C]2 A = (B)2 + 2n – (C)2 A = 2n + (B - C)2 2n es un término adicional. Si B ³ C, entonces B-C³ 0, lo que hace A³ 2n. El término 2n representa un bit de acarreo y se puede ignorar, conservando (B - C)2. Por tanto (A)2 = (B)2 + [C]2 y se descarta el acarreo. Si B < C, entonces B - C < 0, lo que da A = 2n - (C – B)2= [C - B]2, o A= - (C - B)2 que es la respuesta deseada. En este caso no hay acarreo.Si B y C son ambos positivos, la magnitud de B - C siempre será menor que cualquiera de los dos números. Esto significa que no se presenta desbordamiento al calcular B - C.

Ejemplo.Calcular (12)10 – (5)10 Se realiza este cálculo como (12)10 + (-(5)10)(12)10 = (1100)2 = (0,1100)2ms -(5)10 = -(0101)2 = (1,1011)2ms Se suman los dos números de 5 bits

0 1 1 0 0+ 1 1 0 1 1______________________ 1 0 0 1 1 1

Al descartar el acarreo, el bit de signo es cero y por tanto, se interpreta el resultado como (0,0111)2ms = +(0111)2 = +(7)10