Sunteți pe pagina 1din 17

Sistemas de numeración 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.

Para comprender mejor la conversión de sistema de numeración de este sistema de


numeración, hay que tener en cuenta las siguientes definiciones:

FORMA COMPLEMENTO A 1

El complemento a 1 de un numero binario se obtiene cambiando cada 0 por 1 y


viceversa. En otras palabras, se cambia cada bit del numero por su complemento.

Figura 14: Complemento a uno

FORMA COMPLEMENTO A 2

El complemento a 2 de un numero binario se obtiene tomando el complemento a 1, y


sumándole 1 al bit menos significativo. A continuación se ilustra este proceso para el
numero 1001 = 9

Figura 15: Complemento a 2

Cuando se agrega el bit de signo 1 al MSB, el numero complemento a 2 con signo se


convierte en 10111 y es el numero equivalente al - 9.
Complemento A1

Puesto que el sistema binario sólo tiene dos estados, el complemento puede obtenerse
simplemente escribiendo cada bit en su estado opuesto, es decir, cada 1 se cambia por 0 y
cada 0 se cambia por 1

Número 10100011100

Complemento A1 01011100011

Complemento A2

Existen 3 formas de obtener el complemento A2:

Restando el número por su complemento

Base de complementariedad 10000000000

Número 1100110100

Complemento A2 00011001100

Obtener el complemento A1 y después sumarle 1

Número 1100110100
Complemento A1 0011001011

Complemento A2 0011001100

Comenzando por el bit menos significativo, escribir el número hasta encontrar el primer 1, a
partir de este número cambiar los 1 por 0 y los 0 por 1

Número 1100110 1 00

Complemento A2 0011001 1 00

Representación de números con signo


De Wikipedia, la enciclopedia libre

Saltar a navegación, búsqueda

En matemáticas, los números negativos en cualquier base se representan del modo


habitual, precediéndolos con un signo «−». Sin embargo, en una computadora, hay
varias formas de representar el signo de un número. Este artículo trata cuatro métodos
de extender el sistema binario para representar números con signo: signo y magnitud,
complemento a uno, complemento a dos y exceso a bn-1.

Para la mayoría de usos, las computadoras modernas utilizan típicamente la


representación en complemento a dos, aunque pueden usarse otras en algunas
circunstancias.

En las secciones a continuación, nos referiremos exclusivamente al caso de números


signados en binario (y contrastaremos con el decimal con fines didácticos), esto no
significa que lo mostrado aquí se pueda llevar en forma análoga a otras bases
(hexadecimal, u octal, por ejemplo).
Contenido
[ocultar]

 1 Signo y Magnitud
o 1.1 Ejemplo de Signo y Magnitud
o 1.2 Desventajas de la representación en Signo y Magnitud
o 1.3 Ventajas de la representación en Signo y Magnitud
 2 Complemento a la base menos uno
o 2.1 Ejemplo de Complemento a uno
o 2.2 Desventajas de la representación en Complemento a uno
o 2.3 Ventajas de la representación en Complemento a uno
 3 Complemento a la base
o 3.1 Ejemplo de Complemento a dos
o 3.2 Desventajas de la representación en Complemento a dos
o 3.3 Ventajas de la representación en Complemento a dos
 4 En Exceso a bn-1

4.1 Ejemplo de Exceso 2n-1


o
4.2 Desventajas de la representación en Exceso 2 n-1
o
4.3 Ventajas de la representación en Exceso 2n-1
o
 5 Tabla de comparación

[editar] Signo y Magnitud

Para n = 8 (8 bits) en Signo y Magnitud

Valores de 8 Interpretado en Signo y Magnitud Interpretado como Entero sin signo


bits en decimal en decimal

00000000 0 0

00000001 1 1

00000010 2 2

... ... ...

01111110 126 126

01111111 127 127


10000000 −0 128

10000001 −1 129

10000010 −2 130

... ... ...

11111101 −125 253

11111110 −126 254

11111111 −127 255

Un primer enfoque al problema de representar un número signado de n-bits consiste en


asignar:

1. un bit para representar el signo. Ese bit a menudo es el bit más significativo o MSB (de
sus siglas en inglés) y, por convención: un 0 denota un número positivo, y un 1 denota
un número negativo;
2. los (n-1)-bits restantes para representar el significando que es la magnitud del número
en valor absoluto.

Y se conoce como Signo y Magnitud.

Este enfoque es directamente comparable a la forma habitual de mostrar el signo


(colocando "+" o "-" al lado de la magnitud del número). Algunas de las primeras
computadoras binarias (la IBM 7090) utilizaron esta representación, quizás por su
relación obvia con la práctica habitual.

El formato Signo y Magnitud es además el habitual para la representación del


significando en números en punto flotante.

[editar] Ejemplo de Signo y Magnitud

Sea una representación en formato de Signo y Magnitud que nos permite codificar en
binario en punto fijo con 8 bits (un byte). Esto nos otorga 1 bit para el signo y 7 bits
para la magnitud. Con 8 bits, podemos representar, en teoría al menos (véase
Desventajas, más abajo), 28 = 256 números. Los cuales, según éste formato, van a estar
repartidos entre 128 números positivos (bit de signo en 0) y 128 números negativos (bit
de signo en 1).

Supongamos ahora, que tenemos que representar el número -9710 (decimal).


Procedemos a:

1. Tomar nota del signo del número -9710, que siendo negativo, llevará como bit de signo
un 1;
2. Realizar la conversión: el valor absoluto de -97 10 es |-9710| = 9710. Que en binario es:
11000012;
3. Colocar todo junto, el número -9710 en binario con formato de Signo y Magnitud es:
111000012. Donde el 1 en el bit más significativo indica un número negativo, y
11000012 es el significando en valor absoluto.

Para el caso inverso, dado un número binario en Signo y Magnitud, por ejemplo,
101101012, procedemos a:

1. Analizar el bit más significativo, que siendo un 1 indica que el número es negativo;
2. Convertir el significando a la base deseada, por ejemplo, en decimal, tomando en
cuenta que el valor obtenido está en valor absoluto y la magnitud real estará dada por
el bit de signo obtenido antes: 0110101 2 = |5310|. Siendo que el bit de signo es 1, el
número real es -5310. Si el bit de signo fuese 0, el número hubiese sido +53 10.

[editar] Desventajas de la representación en Signo y


Magnitud

Siguiendo con el ejemplo de n = 8 (8 bits).

 No permite operar aritméticamente. De intentar hacer una suma sencilla de un


número positivo y uno negativo, se obtienen resultados incorrectos. Por ejemplo:
000101012 + 111000012 = 111101102 (+2110 + -9710 = -11810 ≠ -7610).
 Posee doble representación del cero. Al representar en Signo y Magnitud, aparece el
cero signado: 000000002 (+010) y 100000002 (-010).

[editar] Ventajas de la representación en Signo y


Magnitud

Siguiendo con el ejemplo de n = 8 (8 bits).

 Posee un rango simétrico: los números van del +127 10 = 011111112, pasando por el
+010 = 000000002 y el -010 = 100000002, hasta el -12710 = 111111112. Y en forma
general, para n-bits, el rango (en decimal) para Signo y Magnitud es (-2 n-1-1; 2n-1-1), o
bien ± 2n-1-1.

ALEJANDRA:D

[editar] Complemento a la base menos uno


Artículo principal: Complemento a uno
Para n = 8 (8 bits) en Complemento a uno

Valores de 8 Interpretado en Complemento a Interpretado como Entero sin


bits uno en decimal signo en decimal

00000000 0 0

00000001 1 1

00000010 2 2

... ... ...

01111110 126 126

01111111 127 127

10000000 −127 128

10000001 −126 129

10000010 −125 130

... ... ...

11111101 −2 253

11111110 −1 254

11111111 −0 255
Otro enfoque sería representar números negativos usando el complemento a la base
menos uno. En el caso de los números binarios, sería el complemento a uno y la forma
del complemento a uno de un número binario es un NOT bit a bit aplicado al número, es
decir, la inversión de unos por ceros y ceros por unos. De esta forma, en la
representación por Complemento a uno de un número signado de n-bits asignamos:

1. un bit para representar el signo. Ese bit a menudo es el bit más significativo y, por
convención: un 0 denota un número positivo, y un 1 denota un número negativo;
2. los (n-1)-bits restantes para representar el significando que es la magnitud del número
en valor absoluto para el caso de números positivos, o bien, en el complemento a uno
del valor absoluto del número, en caso de ser negativo.

Observar así que la representación en Complemento a uno de un número negativo se


puede obtener de la representación en Signo y Magnitud por una mera inversión de unos
por ceros y ceros por unos del significando.

Este sistema numérico de representación era común en computadoras más antiguas; el


PDP-1 y la serie de UNIVAC 1100/2200, entre muchas otras, utilizaron la aritmética en
complemento a uno.

[editar] Ejemplo de Complemento a uno

Sea una representación en formato de Complemento a uno que nos permite codificar en
binario en punto fijo con 8 bits (un byte). Al igual que con la representación en Signo y
Magnitud, esto nos otorga 1 bit para el signo y 7 bits para la magnitud. Con 8 bits,
podemos representar, en teoría al menos (véase nuevamente Desventajas, más abajo), 28
= 256 números. Los cuales, según éste formato, van a estar repartidos entre 128
números positivos (bit de signo en 0) y 128 números negativos (bit de signo en 1).

Supongamos ahora, que tenemos que representar el número -9710. Procedemos a:

1. Tomar nota del signo del número -9710, que siendo negativo, llevará como bit de signo
un 1;
2. Como el signo es negativo, el número a continuación del bit de signo, deberá
expresarse en complemento a uno. Al realizar la conversión: el valor absoluto de -97 10
es |-9710| = 9710. Que en binario es: 11000012, y el complemento a uno de 1100001 2 es
C1(1100001) = 00111102;
3. Colocar todo junto, el número -9710 en binario con formato de Complemento a uno es:
100111102. Donde el 1 en el bit más significativo indica un número negativo, y
00111102 es el significando en complemento a uno del valor absoluto del número.

Para el caso inverso, dado un número binario en Complemento a uno, por ejemplo,
101101012, procedemos a:

1. Analizar el bit más significativo, que siendo un 1 indica que el número es negativo;
2. Convertir el significando a la base deseada, por ejemplo, en decimal, tomando en
cuenta que: el valor obtenido está en valor absoluto, que la magnitud real estará dada
por el bit de signo obtenido antes, y que en caso de ser bit de signo negativo (como es
el caso) se deberá obtener el complemento a uno: C1(0110101) = 1001010 2 = |7410|.
Siendo que el bit de signo es 1, el número real es -74 10. Si el bit de signo fuese 0, el
número hubiese sido 01101012 = +5310 ('sin complementar a uno).

[editar] Desventajas de la representación en


Complemento a uno

Siguiendo con el ejemplo de n = 8 (8 bits).

 Posee doble representación del cero. Al representar en Complemento a uno, aparece


nuevamente el cero signado: 000000002 (+010) y 111111112 (-010).

[editar] Ventajas de la representación en Complemento


a uno

Siguiendo con el ejemplo de n = 8 (8 bits).

 Posee un rango simétrico: los números van del +127 10 = 011111112, pasando por el
+010 = 000000002 y el -010 = 111111112, hasta el -12710 = 100000002. Y en forma
general, para n-bits, el rango (en decimal) para Complemento a uno es (-2 n-1-1; 2n-1-1),
o bien ± 2n-1-1.
 Permite operar aritméticamente. NOTA: al operar se debe sumar el acarreo obtenido
al final de la adición/resta realizadas (conocido como end-around carry), en caso de
haberlo obtenido, para conseguir el resultado correcto. Por ejemplo: 00010101 2 +
100111102 = 101100112 (+2110 + -9710 = -7610) puesto que el end-around carry es cero;
pero, 000000102 + 111111102 = 1000000002 (+2110 + -9710 = -010 ≠ +110), que corregimos
mediante 000000102 + 111111102 = 000000002 + 12 = 000000012, que es el resultado
correcto.

Los procolos de Internet IPv4, ICMP, UDP y TCP usan todos el mismo algoritmo de
suma de verificación de 16 bits en complemento a uno. Aunque la mayoría de la
computadoras carecen del hardware para manejar acarreo del último bit (end-around
carry), la complejidad adicional es aceptada ya que es igualmente sensible a errores en
todas las posiciones de bits. En UDP, una representación de todos ceros indica que la
suma de verificación opcional ha sido omitida. La otra representación, todos unos,
indica un valor 0 en la suma de verificación (las sumas de verificación son obligatorias
para IPv4, TCP e ICMP; fueron omitidas en IPv6).

[editar] Complemento a la base


Artículo principal: Complemento a dos

Para n = 8 (8 bits) en Complemento a dos

Valores de 8 Interpretado en Complemento a dos Interpretado como Entero sin


bits en decimal signo en decimal

00000000 0 0
00000001 1 1

00000010 2 2

... ... ...

01111110 126 126

01111111 127 127

10000000 −128 128

10000001 −127 129

10000010 −126 130

... ... ...

11111101 −3 253

11111110 −2 254

11111111 −1 255

Otro enfoque sería representar números negativos usando el complemento a la base. En


el caso de los números binarios, sería el complemento a dos y la forma de obtener el
complemento a dos de un número binario es mediante la obtención del complemento a
uno y sumarle uno, o bien:

Ejemplo 1 Ejemplo 2

1. Empezando desde la derecha encontramos el primer '1' 0101001 0101100


2. Hacemos un NOT a todos los bits que quedan por la izquierda 1010111 1010100

De esta forma, en la representación por Complemento a dos de un número signado de n-


bits asignamos:

1. un bit para representar el signo. Ese bit a menudo es el bit más significativo y, por
convención: un 0 denota un número positivo, y un 1 denota un número negativo;
2. los (n-1)-bits restantes para representar el significando que es la magnitud del número
en valor absoluto para el caso de números positivos, o bien, en el complemento a dos
del valor absoluto del número, en caso de ser negativo.

Observar así que la representación en Complemento a dos de un número negativo se


puede obtener de la representación en Signo y Magnitud por una mera inversión de unos
por ceros y ceros por unos del significando, y sumarle uno al valor obtenido.

[editar] Ejemplo de Complemento a dos

Sea una representación en formato de Complemento a dos que nos permite codificar en
binario en punto fijo con 8 bits (un byte). Al igual que con la representación en Signo y
Magnitud, y Complemento a uno, esto nos otorga 1 bit para el signo y 7 bits para la
magnitud. Con 8 bits, podemos representar, 28 = 256 números. Los cuales, según éste
formato, van a estar repartidos entre 128 números positivos (bit de signo en 0) y 128
números negativos (bit de signo en 1).

Supongamos ahora, que tenemos que representar el número -9710. Procedemos a:

1. Tomar nota del signo del número -9710, que siendo negativo, llevará como bit de signo
un 1;
2. Como el signo es negativo, el número a continuación del bit de signo, deberá
expresarse en complemento a dos. Al realizar la conversión: el valor absoluto de -97 10
es |-9710| = 9710. Que en binario es: 11000012, y el complemento a uno de 1100001 2 es
C1(1100001) = 00111102, le sumamos uno para obtener el complemento a dos:
00111102 + 00000012 = 001111112;

 Colocar todo junto, el número -9710 en binario con formato de Complemento a dos es:
100111112. Donde el 1 en el bit más significativo indica un número negativo, y
00111112 es el significando en complemento a dos del valor absoluto del número.

Para el caso inverso, dado un número binario en Complemento a dos, por ejemplo,
101101012, procedemos a:

1. Analizar el bit más significativo, que siendo un 1 indica que el número es negativo;
2. Convertir el significando a la base deseada, por ejemplo, en decimal, tomando en
cuenta que: el valor obtenido está en valor absoluto, que la magnitud real estará dada
por el bit de signo obtenido antes, y que en caso de ser bit de signo negativo (como es
el caso) se deberá obtener el complemento a dos: C2(0110101) = C1(0110101) +
00000012, luego C1(0110101) = 10010102, y al sumarle 1, 10010112 = |7510|. Siendo
que el bit de signo es 1, el número real es -75 10. Si el bit de signo fuese 0, el número
hubiese sido 01101012 = +5310 (sin complementar a dos).
[editar] Desventajas de la representación en
Complemento a dos

Siguiendo con el ejemplo de n = 8 (8 bits).

 Posee un rango asimétrico: los números van del +127 10 011111112, pasando por el
+010, 000000002. Y aquí aparece la primer diferencia, el 111111112, ya no es -010 como
en la representacion anterior, sino que es -1 10, y al llegar al 100000002 nos
encontramos con que el complemento a dos de 100000002 es 100000002, ¡el mismo
número!. Por convención, se asigna a este número particular el valor -128 2 (para 8
bits). Luego, en forma general, para n-bits, el rango (en decimal) para Complemento a
dos es (-2n-1; 2n-1-1).

[editar] Ventajas de la representación en Complemento


a dos

Siguiendo con el ejemplo de n = 8 (8 bits).

 No posee doble representación del cero.


 Permite operar aritméticamente.

[editar] En Exceso a bn-1

Para n = 8 (8 bits) en Exceso a 127

Valores de 8 Interpretado en Exceso a 127 en Interpretado como Entero sin signo


bits decimal en decimal

00000000 -127 0

00000001 -126 1

00000010 -125 2

... ... ...

01111110 -1 126

01111111 0 127
10000000 1 128

10000001 2 129

10000010 3 130

... ... ...

11111101 126 253

11111110 127 254

11111111 128 255

Un ultimo enfoque al problema de representar un número signado de n-bits consiste en


asignar tomar el valor real del número a representar, sumarle la base elevada al número
de dígitos que se tienen disponibles, y restarle uno. En el caso particular de base 2,
sistema binario, el número x en de n-bits es representado como x + 2n-1. Esto se conoce
como representación en Exceso a bn-1, puesto que cada número se le suma el mismo
valor y está en exceso por dicho valor.

El formato en exceso es habitual para la representacion del exponente en números en


punto flotante, por ejemplo, para la norma IEEE-754.

[editar] Ejemplo de Exceso 2n-1

Sea una representación en formato de Exceso que nos permite codificar en binario en
punto fijo con 8 bits (un byte). Luego, los números 8 bits serán representados en Exceso
a 28-1 = 12710. Con 8 bits, podemos representar, 28 = 256 números.

Supongamos ahora, que tenemos que representar el número -9710 (decimal).


Procedemos a:

1. Tomar el número -9710 y sumarle el exceso, en este caso 12710, luego -9710 + 12710 =
3010;
2. Convertimos a binario, en este caso. Luego, 30 10 = 000111102.

Para el caso inverso, dado un número binario en Exceso 12710, por ejemplo, 101101012,
procedemos a:

1. Convertir el número a la base deseada, por ejemplo, en decimal: 10110101 2 = 18110;


2. Pero el valor obtenido está en exceso 127, luego debemos quitarle dicho exceso,
restando 127: 18110 - 12710 = 5410.

[editar] Desventajas de la representación en Exceso 2n-


1

Siguiendo con el ejemplo de n = 8 (8 bits).

 Requiere de operaciones aritméticas intermedias para su obtención, y de cambiar el


número de bits se deben actualizar dichas operaciones intermedias para reflejar el
nuevo exceso.
 Posee rango asimétrico: éste va desde +128 10 = 111111112 hasta -12710 = 000000002. Y
en forma general, para n-bits, el rango (en decimal) para Exceso 2n es (-2n-1-1; 2n-1).

[editar] Ventajas de la representación en Exceso 2n-1

Siguiendo con el ejemplo de n = 8 (8 bits).

 Permite operar aritméticamente, pero hay que tener en cuenta que cada operación
lleva asociado su exceso y esto hay que restarselo al resultado final, para corregir la
representación. Por ejemplo, 000111102 + 101101012 = 110100112 (-9710 + 5410 = 21110
≠ -4310). El resultado, en aparente exceso 127 10, 21110, al quitarle dicho exceso es 21110
- 12710 = 8410. Pero, hay que tener en cuenta que al sumar dos números con exceso
12710, debemos restar, dos veces el exceso. Luego 8410 - 12710 = -4310, que es el
resultado correcto.
 No hay empaquetación del número. Por esto nos referimos a que no hay que recordar
que partes del número son signo y significando, sino que los n-bits, son el número.

[editar] Tabla de comparación

La tabla siguiente compara la representación de los enteros entre 8 y -8 (incluídos)


usando 4 bits.

Representación de enteros de 4 bits

Entero sin Signo y Complemento Complemento En exceso a


Decimal
signo Magnitud a uno a dos 7

+8 1000 n/d n/d n/d 1111

+7 0111 0111 0111 0111 1110

+6 0110 0110 0110 0110 1101


+5 0101 0101 0101 0101 1100

+4 0100 0100 0100 0100 1011

+3 0011 0011 0011 0011 1010

+2 0010 0010 0010 0010 1001

+1 0001 0001 0001 0001 1000

+0 0000 0000 0000 0000 0111

-0 n/d 1000 1111 n/d n/d

-1 n/d 1001 1110 1111 0110

-2 n/d 1010 1101 1110 0101

-3 n/d 1011 1100 1101 0100

-4 n/d 1100 1011 1100 0011

-5 n/d 1101 1010 1011 0010

-6 n/d 1110 1001 1010 0001

-7 n/d 1111 1000 1001 0000

-8 n/d n/d n/d 1000 n/d

Obtenido de "http://es.wikipedia.org/wiki/Representaci%C3%B3n_de_n
%C3%BAmeros_con_signo"
Complementos - Presentation Transcript

1.  
2. 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.
3. 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.
4.
o Complemento a uno
o 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.
o 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 .

5.
o 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; 2 6 = 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.

6. Ejemplo: En Complemento a 1, para n = 16 , el número -9503 10 se escribe calculando el


Complemento a la Base Menos 1 del número 9503 10 escrito en base 2, es decir, del número
10010100011111 2 : C 1 (N) = C 1 (10010100011111) = = 2 n - 1 - N = = 2 16 - 1 - 10010100011111 = =
10000000000000000 - 1 - 10010100011111 = = 1101101011100000 C1 En consecuencia, -9503 10 =
1101101011100000 C1 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.
7. 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.
8. 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 –2 n-1 £ N £ 2 n-1 -1, donde n es el número de bits disponibles para representar a
N. Observe que 2 n-1 -1=(0,11...1) 2ms y que –2 n-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.
9. 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> 2 n-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
10. 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 + 2 n – (C) 2 A = 2 n + (B - C) 2 2 n es un término
adicional. Si B ³ C, entonces B-C³ 0, lo que hace A³ 2 n . El término 2 n 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 = 2 n - (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

S-ar putea să vă placă și