Sei sulla pagina 1di 51

complemento a 1 y 2 de nmeros

binarios
El complemento a 1 y el complemento a 2 de un
nmero binario son importantes porque permiten la
representacin de nmeros negativos.
La aritmtica en complemento a 2 se usa
comnmente en las computadoras para manipular
nmeros negativos.
Complemento a 1
El complemento a 1 de un nmero binario es solo la
inversin de los dgitos. Para formar el complemento a
1, cambiar todos los 0s a 1s y todos los 1s a 0s.

Por ejemplo, el complemento a 1 de 11001010 es


00110101

En circuitos digitales, el complemento a 1 se forma


utilizando inversores:
Complemento a 2
El complemento a 2 de un nmero binario se obtiene
sumando 1 al LSB del complemento a 1.

Recordamos que el complemento a 1 de 11001010 es


(complemento a 1) 00110101
Para formar el complemento a 2, sumar 1: +1
(complemento a 2) 00110110
Complemento a 2

Un mtodo alternativo para obtener el complemento a


2 de un nmero binario es el siguiente:

1. Se empieza por la derecha con el LSB y se escriben


los bits como estn hasta encontrar el primer 1, incluido
ste.

2. Se calcula el complemento a 1 de los bits restantes.

Calcular el complemento a 2 de 11001010 es


(complemento a 2) 00110110

Se calcula el complemento a 1 de los bits


restantes Se escriben los bits como estn hasta
encontrar el primer 1, incluido ste.
Representacin de nmeros con
signo
Los nmeros con signo tienen dos partes: signo y
magnitud
Los sistemas digitales, tales como las computadoras,
deben ser capaces de manejar nmeros positivos y
negativos.
Normalmente se codifica el signo con un 0 para
nmeros positivos y un 1 para nmeros negativos
Existen tres formatos binarios para representar los
nmeros enteros con signo:

Signo y magnitud
Complemento a 1
Complemento a 2
Formato Signo y Magnitud
Los nmeros en el sistema de Signo y Magnitud se
codifican de la siguiente forma:

El MSB es el signo (0 si es positivo o 1 si es negativo)


El resto de los bits son la magnitud del nmero a
representar, codificada en binario

EJEMPLO
2510 = 11001BIN
bits de Magnitud
+2510 = 011001SM
bit de Signo
- 2510 = 111001SM

El signo indica si un nmero es positivo o negativo, y


la magnitud el valor del nmero.
Formato Signo y Magnitud
DESVENTAJAS

En el formato signo-magnitud existen dos ceros, uno


positivo y otro negativo, pero con el mismo significado.

La multiplicacin y la divisin pueden hacerse


basndose en sumas y restas, pero es necesario tener
circuitos capaces tanto de sumar como de restar.

Dado que las operaciones de suma y resta necesitan


realizar comparaciones, los circuitos aritmticos en signo
magnitud tienden a ser ms lentos de lo deseado.
Formato Signo y Magnitud
Situaciones especiales
El desbordamiento (overflow) es la circunstancia que
sucede cuando el resultado de una operacin aritmtica
est fuera del rango de representacin.

Desbordamiento positivo: el nmero es positivo y


mayor que el ms grande representable.

Desbordamiento negativo: el nmero es ms negativo


(menor) que el extremo inferior del rango de los
negativos.

Un desbordamiento se puede producir slo cuando


ambos nmeros son positivos o negativos.
Situaciones especiales
Desbordamiento: puede darse al realizar sumas, restas,
multiplicaciones y divisiones.

Suma: el resultado puede tener n+1 bits (acarreo superior C = 1)

acarreo 1101 13
+ 1111 +15 DESBORDAMIENTO POSITIVO
1 1100 28
Resta: el resultado puede ser negativo (acarreo superior C = 1)

acarreo 1101 13 DESBORDAMIENTO NEGATIVO


- 1111 -15 sustraendo mayor que minuendo
1 1110 - 2

Producto: al multiplicar nmeros de n bits el resultado puede


necesitar hasta 2n bits (puede salirse de rango!).

Divisin: hay desbordamiento si el divisor es 0.


Formato del complemento a 1
Los nmeros en el sistema Complemento a 1 se
codifican de la siguiente forma:
Si el nmero es positivo
El MSB es un 0 (signo)
El resto de los bits son la magnitud en binario natural
Si el nmero es negativo
El MSB es un 1 (signo)
El resto de los bits son el complemento a 1 de la
magnitud
EJEMPLO 2510 = 11001BIN

bit de Signo bits de Magnitud


+2510 = 011001Ca1
- 2510 = 100110Ca1
Formato del complemento a 1
Con este formato, el primer bit contiene el signo y el
resto contienen el complemento a 1 del valor absoluto
(positivo) del nmero a representar.
El complemento a 1 de un nmero se obtiene cambiando
1's por 0's, y viceversa.
El nico inconveniente de este sistema es que el cero
tiene dos representaciones, +0 y -0:

+0: 0000.0000
- 0: 1111.1111

As, los nmeros se representan de la siguiente manera:

95 = 0101.1111 >>>>>> -95 = 1010.0000


49 = 0011.0001 >>>>>> -49 = 1100.1110
Formato del complemento a 1
Los nmeros positivos en formato de complemento a
1 se representan igual que los nmeros positivos del
formato signo-magnitud. Sin embargo, los nmeros
negativos son el complemento a 1 del correspondiente
nmero positivo.

Por ejemplo, con ocho bits, el nmero decimal -25 se


expresa como el complemento a 1 de +25 (00011001)
como 11100110.

En formato complemento a 1, un nmero negativo es


el complemento a 1 del correspondiente nmero
positivo
Formato del complemento a 1
DESVENTAJAS

En el formato signo-magnitud existen dos ceros, uno


positivo y otro negativo, pero con el mismo significado.

La multiplicacin, la divisin y la resta pueden hacerse


basndose en sumas y restas, pero los circuitos
sumadores se complican porque en determinadas
circunstancias hay que sumar un acarreo al resultado.

Debido a esta complicacin, los circuitos aritmticos en


complemento a 1 tambin tienden a ser ms lentos de lo
que se querra.
Formato del complemento a 2
No hay que confundir los conceptos de operacin de
complementar a 2 y representacin en complemento a 2
de un nmero:
Operacin de complementar a 2 de un nmero A:
Ca2(A) = A+1
Representacin en complemento a 2 de un nmero A:
Hay que distinguir si es positivo o negativo, slo en
el caso de que sea negativo dicha representacin se
obtiene aplicando la operacin de complementar a 2.
La representacin en complemento a 2 es la ms
utilizada en los sistemas digitales para nmeros con
signo.
Formato del complemento a 2
Los nmeros en el sistema Complemento a 2 se
codifican de la siguiente forma:
Si el nmero es positivo
El MSB es un 0 (signo)
El resto de los bits son la magnitud en binario natural
Si el nmero es negativo
El MSB es un 1 (signo)
El resto de los bits son el complemento a 2 de la
magnitud
EJEMPLO 2510 = 11001BIN

bit de Signo bits de Magnitud


+2510 = 011001Ca2
- 2510 = 100111Ca2
Formato del complemento a 2
El formato binario de complemento a 1 se mejora con
el complemento a 2. Con este sistema el cero tiene una
representacin nica, y se sigue manteniendo que el
primer bit contiene el signo, mientras que el resto
contienen directamente el nmero (si es positivo) o el
complemento a 2 del valor absoluto del nmero.

El complemento a 2 de un nmero se obtiene sumando


1 al complemento a 1.

Los nmeros tienen esta representacin:

95 = 0101.1111 (Comp.1) -95 = 1010.0000 (Comp.2) -95 = 1010.0001

49 = 0011.0001 (Comp. 1) -49 = 1100.1110 (Comp. 2) -49 = 1100.1111


Formato del complemento a 2
Los nmeros positivos en formato de complemento a 2 se
representan igual que los nmeros positivos del formato
signo-magnitud y complemento a 1. Sin embargo, los
nmeros negativos son el complemento a 2 del
correspondiente nmero positivo.

Por ejemplo, con ocho bits, el nmero decimal -25 se


expresa como el complemento a 2 de +25 (00011001) como
11100111.

En formato complemento a 2, un nmero negativo es el


complemento a 2 del correspondiente nmero positivo
Formato del complemento a 2
Las sumas de nmeros naturales en binario se realizan igual
que en decimal:
1001 (9)
+ 1101 (13)
10110 (22)

Utilizando la representacin de los nmeros en Ca2, el mtodo


es vlido tambin para nmeros con signo, si se siguen las
siguientes reglas.
Operandos con el mismo nmero de bits.
Se descarta el acarreo final.
Si los dos operandos tienen el mismo signo, y el
resultado de la operacin tiene signo diferente el resultado no es
vlido. Se dice que hay desbordamiento (overflow):
Esto sucede porque hara falta un bit adicional para
poder representar el resultado.

En los sistemas digitales se representan los nmeros con signo en


Ca2, y no se utilizan restadores (no hacen falta), slo sumadores
Formato del complemento a 2
SUMA

Cuando se suman dos nmeros binarios con signo


pueden producirse cuatro casos:

1. Ambos nmeros son positivos.


2. El nmero positivo es mayor que el negativo en valor
absoluto.
3. El nmero negativo es mayor que el positivo en valor
absoluto.
4. Ambos nmeros son negativos.
Formato del complemento a 2
SUMA
Nmero positivo
Dos nmeros positivos: grande y nmero
(+9) + (+4) negativo pequeo:
(+9) + (-4)
0 1001 Ca2 (+9)
+ 0 0100 Ca2 (+4) 0 1001Ca2 (+9)
0 1101 Ca2 (+13) + 1 1100Ca2 (-4)
1 0 0101Ca2 (+5)

Nmero positivo
Dos nmeros negativos:
pequeo y nmero
(-9) + (-4)
negativo grande:
(-9) + (+4)
1 0111 Ca2 (-9)
+ 1 1100 Ca2 (-4)
1 0111Ca2 (-9)
1 1 0011 Ca2 (-13)
+ 0 0100Ca2 (+4)
1 1011Ca2 (-5)
Formato del complemento a 2
Si los dos valores sumados son positivos,
Dos nmeros positivos: el resultado tambin ser positivo y por lo
(+9) + (+4) tanto esta en binario sin complementar.
Existe la posibilidad de un
0 1001 Ca2 (+9) desbordamiento (overflow), es decir, de
+ 0 0100 Ca2 (+4) obtener un resultado incorrecto porque
0 1101 Ca2 (+13) necesita ms bits de los que se pueden
representar.
--------------------------
Dos nmeros negativos: Si los dos valores sumados son negativos,
(-9) + (-4) el resultado tambin ser negativo y por lo
tanto en complemento a 2.
1 0111 Ca2 (-9) Existe la posibilidad de que aparezca un
+ 1 1100 Ca2 (-4) acarreo (carry) pero no invalida el resultado
1 1 0011 Ca2 (-13) y debe descartarse.
Adems existe la posibilidad de un
desbordamiento (overflow).
Formato del complemento a 2
Nmero negativo Si los dos valores sumados tienen
pequeo y nmero distinto signo el resultado es positivo y
positivo grande: es imposible que ocurra un
(+9) + (-4) desbordamiento.
Puede aparecer un acarreo, pero se
0 1001 (+9) descarta y el resultado esta en binario y
+ 1 1100Ca2 (-4) sin complementar.
1 0 0101 (+5) --------------------------
Nmero positivo Si los dos valores sumados tienen
pequeo y nmero distinto signo el resultado es negativo
negativo grande: y por lo tanto esta en complemento a
(-9) + (+4) 2.
Para descomplementar el resultado
1 0111Ca2 (-9) se invierten los bits y se suma una
+ 0 0100 (+4) unidad.
1 1011Ca2 (-5)
Formato del complemento a 2
EN SINTESIS

Cuando se tiene que operar con nmeros negativos, se hace


imprescindible trabajar con complemento a dos.

Para pasar un nmero positivo a C2, no se cambia.

Para pasar un nmero negativo a C2:


Se expresa en binario negativo
Se complementan con ceros los bits disponibles
Se pasa a complemento a Uno, cambiando 0 x 1 y 1 x 0
Se suma 1 al C1 para lograr el complemento a 2

Para pasar de C2 a Decimal:


Si el primer dgito es cero Positivo Convertir directamente a
Decimal
Si el primer dgito es uno: Negativo Restar uno para
obtener C1 Cambiar 1 x 0 y 0 x 1: para obtener el binario con signo
negativo.
SUMA binaria
SEMISUMADOR

Un semisumador admite dos dgitos binarios en


sus entradas y genera dos dgitos binarios en sus
salidas: un bit de suma y un bit de acarreo.
Permite sumar dos bits sin tener en cuenta los acarreos
provenientes de la adicin de bits anteriores.
SUMA binaria
SEMISUMADOR
A partir del funcionamiento lgico de un semisumador
mostrado en la tabla de verdad, las expresiones
correspondientes a la SUMA y al ACARREO DE
SALIDA se pueden obtener como funciones de las
entradas. Es decir:
La salida de acarreo Cout es 1 slo cuando A y B son 1.
Por tanto, Cout puede expresarse como una operacin
AND de las variables de entrada:
Cout= A B
La salida correspondiente a la Suma es 1 slo si las
variables A y B son distintas. Por tanto, la suma puede
expresarse como una operacin OR-exclusiva (XOR) de
las variables de entrada:
Suma = A B
SUMA binaria
SUMADOR COMPLETO

Un sumador completo acepta dos bits de entrada y un


acarreo de entrada, y genera una salida de suma y un
acarreo de salida .
Permite sumar dos bits teniendo en cuenta los acarreos
provenientes de la adicin de bits anteriores.

Suma = (A B) Cin
Cout= A B + (A B) Cin
SUMA binaria
SUMADOR COMPLETO
Un sumador completo suma los dos bits de entrada y el
bit de acarreo de entrada .
A partir del semisumador, sabemos que la suma de
los dos bits de entrada A y B consiste en la operacin
OR-exclusiva (XOR) entre esas dos variables, AB.
Para la SUMA del acarreo de entrada (Cin) a los bits de
entrada, hay que volver a aplicar la operacin OR-
exclusiva (XOR), obtenindose la siguiente ecuacin de
salida: Suma = (A B) Cin
El ACARREO DE SALIDA es 1 cuando las dos
entradas de la primera puerta XOR son 1, o cuando
las dos entradas de la segunda puerta XOR son 1. Por
tanto: Cout= A B + (A B) Cin
SUMA binaria
SUMADOR COMPLETO

Podemos disearlo a partir de dos semisumadores


SUMA binaria
SUMADOR PARALELO CON ACARREO EN SERIE (en cascada)

Un sumador paralelo de n bits es un circuito


combinacional capaz de realizar la suma aritmtica de 2
datos de n bits cada uno. Se implementa conectando en
Cascada.
Cada sumador completo realiza una suma n Sumadores
Completos.
Genera un acarreo que se le transmite al sumador
Siguiente.

Sumador Paralelo de 4 bits


SUMA binaria
C.I. 7483_SUMADOR DE 4 BITS
El circuito integrado 7483 implementa un sumador
binario completo de 2 nmeros de 4 bits. Su
configuracin es la que se muestra en la figura 1.
Donde:
A4-A1 y B4-B1 son los dos nmeros a
sumar. Siendo A4 y B4 los bits ms
significativos, mientras que A1 y B1 son
los menos significativos.
C0 es el acarreo de entrada.
4-1 son las salidas del circuito.
C4 es el acarreo de salida.
En conjunto, C4 : 4: 3: 2: 1: Forman el resultado de la operacin.
RESTA binaria
Consiste en sumar un nmero con el negativo de otro. El
negativo de un nmero binario se obtiene normalmente
aadiendo un bit de signo.
La forma ms usual es trabajar con nmeros en c-1
(complemento a uno) o, en c-2 (complemento a dos). En ambos
casos el bit ms significativo se convierte en bit de signo.

Se realizan
mediante
sumadores, ya
que la resta de
dos nmeros es
la suma de uno
con el negativo
del otro.
RESTA binaria
SEMIRESTADOR

Un semirestador (HS) o restador medio es un


circuito combinacional con dos entradas, A y B y dos
salidas D y C. La salida D representa el resultado de
la resta aritmtica de las entradas A B y la salida C,
el arrastre de la resta (me llevo uno).
RESTA binaria
RESTADOR COMPLETO
Un restador completo (FS) es un circuito combinacional con
tres entradas A, B y Ci y dos salidas S y CO. La salida S
representa el resultado de la resta aritmtica de las entradas A, B
y Ci (A B Ci) y la salida CO, el arrastre.

Esta forma de actuar solo es valida con nmeros positivos.


Otra opcin, mas eficiente, consiste en calcular la resta a
partir de la suma. Para ello, solo se necesita calcular el
opuesto del sustraendo. Esta operacin depende del tipo de
representacin elegida para codicar los nmeros negativos.
SUMA/RESTA binaria
SUMADOR/RESTADOR

Sumador/Restador de 4 bits en complemento a 1


SUMA/RESTA binaria
SUMADOR/RESTADOR
Sabemos que a un sumador de n bits, hacindole un pequeo
cambio, lo podemos convertir en sumador y restador. Simplemente
se complementan a 1 los bits del sustraendo y adems se aade un 1
por la entrada de acarreo. La suma de dos nmeros de n bits
necesitan n +1 bits para poder expresarse sin overflow.

Una seal de control


S/R decide si se hace
o no ese cambio, y,
por tanto, si se resta
o suma,
respectivamente.

Sumador/Restador de 3 bits en complemento a 2


SUMA/RESTA binaria
SUMADOR/RESTADOR

Veamos algunos ejemplos de SUMAS y de RESTAS


6-3=3
6 + 7 = 13 El resultado es +3, pero despreciando el
bit de acarreo de salida

El sumador restador para binario natural slo sirve para sumar,


sin problemas, y para restar, cuando el resultado de la resta es positivo
SUMA/RESTA binaria
SUMADOR/RESTADOR

Aprovechamos el circuito
sumador empleando el
convenio de complemento a
2, de modo que las restas se
conviertan en sumas

A-B = A+B+1,
para realizar el
complemento
se usan las
compuertas
x-or.
Sumador/Restador de 4 bits
en CASCADA
SUMA/RESTA binaria
SUMADOR/RESTADOR

El uso del complemento a 2 permite realizar sumas y


restas con un sumador y un poco de lgica adicional
A3 A2 A1 A0 B3 B2 B1 B0

S/R

S/R = 0 suma
S/R = 1 resta

sumador

S4 S3 S2 S1 S0 Complementador a 2

Sumador/Restador de 4 bits
suma BCD

Mtodo para sumar dos nmeros BCD:

Paso 1. Sumar los dos nmeros BCD utilizando las reglas de la


suma binaria vistas anteriormente.

Paso 2. Si una suma de 4 bits es igual o menor que 9, es un


nmero BCD vlido.

Paso 3. Si una suma de 4 bits es mayor que 9, o si genera un


acarreo en el grupo de 4 bits, el resultado no es vlido. En este
caso, se suma 6 (0110) al grupo de 4 bits para saltar as los seis
estados no vlidos y pasar al cdigo 8421. Si se genera un
acarreo al sumar 6, ste se suma al grupo de 4 bits siguiente.
suma BCD
Ejemplo de la suma en BCD para los casos en que
la suma en cada columna de 4 bits es igual o menor
que 9.

Sumar los siguientes nmeros BCD:


(a) 0011 + 0100 (b) 00100011 + 00010101

(a) 0011 3 (b) 0010 0011 23


+0100 + 4 + 0001 0101 + 15
0111 7 0011 1000 38

Observe que en ningn caso la suma de las


cuatro columnas de 4 bits excede 9, por lo que los
resultados son nmeros BCD vlidos.
suma BCD
Ejemplo del procedimiento en el caso de que se
produzcan sumas no vlidas (mayores que 9 o que
generen acarreo).
Sumar los siguientes nmeros BCD:
00010110 + 00010101

0001 0110 16
+ 0001 0101 + 15
0010 1011 El grupo de la derecha no es 31
vlido (>9), el grupo de la izquierda s.
+ 0110 Se suma 6 al cdigo no vlido.
Se suma el acarreo, 0001, al siguiente grupo.
0011 0001 Nmero BCD vlido

3 1
Resta BCD
Igual que con la resta binaria, la resta en BCD se har sumando
una cantidad negativa a otra positiva

Hay varias formas posibles para realizar la resta BCD:


Nosotros elegiremos el complemento a 9.

Los principios bsicos de sustraccin por complemento a nueve


se presentan de forma grfica en el diagrama.

El algoritmo de la resta por complemento a nueve consiste en


complementar el sustraendo y, despus, seguir el algoritmo de
suma, excepto que la salida de acarreo de la ltima etapa (la ms
significativa) se ha de conectar con la entrada de acarreo de la
primera.
Resta BCD

SUSTRAENDO SUSTRAENDO
B7 B6 B5 B4 B3 B2 B1 B0

MINUENDO MINUENDO
C9 C9
A7 A6 A5 A4 A3 A2 A1 A0

Co SUMADOR Ci Co SUMADOR Ci
BCD BCD

S7 S6 S5 S4 S3 S2 S1 S0

Resta BCD de 2 dgitos en complemento a nueve


Resta BCD

Debido a que un restador de complemento a nueve usa los


mismos circuitos que un sumador, puede construirse un
sumador-restador con menos lgica auxiliar, que la necesaria si
se construyese a base de dos circuitos independientes.

Complemento a nueve

DEF: Si N es un nmero positivo, N es su negativo de tal forma que:


n
Ca9 (N) = N = 10 - 1-N

Ej: Ca9 (3291) = 104-1-3291 = 6708 = 0110 0111 0000 1000


Resta BCD
CIRCUITO COMPLEMENTADOR A NUEVE
Representacin simblica y
logigrama de un generador de
complemento a 9

C9

tabla de verdad y funciones de


un generador de complemento
a9
Resta BCD
Resta de nmeros en complemento a nueve

Ej: 5239 - 3291 = 5239 - Ca9 (3291)

1 1
0 0101 0010 0011 1001

1 0110 0111 0000 1000

10 1011 1001 0100 10001

110 110

10001 10111

No se desprecia 10 0001 1001 0100 0111


el bit de acarreo +1

positivo 0 0001 1001 0100 1000 = 1948 OK


Resta BCD
Resta de nmeros en complemento a nueve

Ej: 3291 - 5239 = 3291 - Ca9 (5239)

1 1
0 0011 0010 1001 0001

1 0100 0111 0110 0000

1 1000 1010 1111 0001

110 110

10000 10101

1 1000 0000 0101 0001 = -1948 OK

negativo Ca9 del resultado


Resta BCD
FIN

Potrebbero piacerti anche