Vous êtes sur la page 1sur 41

Aritmética Binaria

Técnicas Digitales
ARITMÉTICA BINARIA

Operaciones en el sistema Binario Natural

Suma Binaria
Resta Binaria
Unidad Aritmética Lógica (ALU)

Operaciones en BCD Natural

Suma en BCD
Resta en BCD
ARITMÉTICA BINARIA
Operaciones en el sistema Binario Natural

Suma Binaria
Sumador sin acarreo o Half Adder (HA)
Sumador con acarreo o Full Adder (FA)
Sumador paralelo con acarreo serie
Sumador paralelo con acarreo paralelo
Sumador serie

Resta Binaria
Representación de los números negativos
Operaciones en Complemento a 1
Operaciones en Complemento a 2
Desbordamientos (Overflow)
Circuito complementador 74487
Comparadores binarios en magnitud

Unidad Aritmética Lógica (ALU)


SUMA BINARIA
Sumador sin acarreo o Half Adder
Ai Ai
Ai Bi Suma Ac. 0 1 0 1
Bi Bi
0 0 0 0 0 0 1 0 0 0
0 1 1 0
1 0 1 0 1 0
1 1 0 1
1 1 0 1

Suma = Ai Bi + Ai Bi Ac. = Ai Bi
= Ai + Bi

Ai
Suma A S
Bi HA
B Co
Acarreo
SUMA BINARIA
Sumador con acarreo o Full Adder
A B Ci S Co AB
0 0 0 0 0 Ci 00 01 11 10
0 0 1 1 0 0 0 1 0 1
0 1 0 1 0 S
0 1 1 0 1 1 1 0 1 0
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1 AB
1 1 1 1 1 Ci 00 01 11 10
0 0 0 1 0
Co
1 0 1 1 1

S = Ci xor A xor B

Co = B Ci + A Ci + A B = CiA + CiB + A B
SUMA BINARIA
Sumador con acarreo o Full Adder

Implantación estándar: 6 puertas

A
B
S
Ci
A S

B
FA
A Co
Ci
Ci

B CO
Ci

A
B
SUMA BINARIA
Sumador con acarreo o Full Adder

Implantación alternativa: 5 puertas

A S
A+B S
A + B + Ci S
HA HA
AB Ci (A + B)
B Co Co

Ci
+ Co

A B + Ci (A + B) = A B + B Ci+ A Ci
SUMA BINARIA
Sumador paralelo con acarreo serie

A2 B2 A1 B1 A0 B0 Cin

+ + +

Cout

S2 C2 S1 C1 S0
SUMA BINARIA
Sumador paralelo con acarreo paralelo (es más rápido)

Necesitamos predecir
el acarreo para cada
término de la suma

A2 B2 A1 B1 A0 B0 Cin

Cout
+ + +

S2 S1 S0
SUMA BINARIA
Sumador paralelo con acarreo paralelo
Se trata de predecir el acarreo para cada término de la suma

C0 = Cin

C1 = A0 B0 + C0 (A0+B0) = G0 + C0 P0

C2 = A1 B1 + C1 (A1+B1) = G1 + [G0 + C0 P0] P1 = G1 + G0 P1 + C0 P0 P1

C3 = ... = G2 + G1 P2 + G0 P1 P2 + C0 P0 P1 P2

Las variables son las entradas al sumador y el acarreo de la primera


etapa
SUMA BINARIA
Sumador paralelo con acarreo paralelo
A2 B2 A1 B1 A0 B0

El circuito es más
complejo pero es
más rápido
G2 P2 G1 P1 G0 P0

G2 G1 P2 G0P1 P2 C0P0 P1P2 G1 G0 P1 C0 P0 P1 G0 C0 P0

A2 B2 A1 B1 A0 B0 C0=Cin

Cout
+ + +

S2 S1 S0
SUMA BINARIA
Sumador serie

A
+ S
B
Ci Co

CLK

Célula de memoria
SUMA BINARIA
Sumadores comerciales

7480 → sumador completo de 1 bit

7482 → sumador completo de 2 bit

7483 → sumador completo de 4 bit

74182 → generador de acarreo previo


RESTA BINARIA

En principio se pueden diseñar circuitos restadores de la misma forma a


como lo hicimos con los sumadores

Sin embargo lo que se suele hacer es usar los mismos circuitos


sumadores para hacer las restas

Para ello tenemos que ver primero como se representan los números
binarios negativos
RESTA BINARIA
Representación de números negativos

Representación de números positivos es similar en la mayoría de los sistemas

Mayores diferencias surgen en la representación de los valores negativos

Dos esquemas fundamentales:


Complemento a uno
Complemento a dos

Especificaciones iniciales:
Trabajaremos con palabras de cuatro bits
Podemos representar 16 valores distintos
Aproximadamente la mitad serán positivos y la mitad negativos
RESTA BINARIA
Complemento a uno
DEF: Si N es un número positivo, N es su negativo de tal forma que:
n
Ca1 (N) = N = (2 - 1) - N

Ej: Ca1 (7)


4
2 = 10000

1 = - 00001

1111

7 = - 0111

1000 = -7

TRUCO: Cambiamos cada bit por su complementario


Ej: Ca1 (7) 0111 -> 1000
RESTA BINARIA
Complemento a uno

-0 +0
-1 1111 0000 +1
1110 0001
-2 +2 +
1101 0010
-3 1100 0011 +3 0 100 = + 4

-4 1011 0100 +4 1 011 = - 4


1010 0101
-5 +5 -
1001 0110
-6 1000 0111 +6
-7 +7

Hay dos representaciones del cero (malo)


RESTA BINARIA
Complemento a dos
DEF: Si N es un número positivo:
n
Ca2 (N) = 2 - N = Ca1 (N) + 1

Ej: Ca2 (7) Ej: Ca2 (7)


4 4
2 = 10000 2 = 10000

-7 = - 0111 -(-7) = -1001

1001 = repr. de -7 0111 = repr. de 7


RESTA BINARIA
Complemento a dos

TRUCO1: Complementamos cada bit y al resultado le sumamos 1,


es decir, le sumamos 1 al Ca1 del número

0111 -> 1000 + 1 -> 1001 (representación de -7)

1001 -> 0110 + 1 -> 0111 (representación de 7)

TRUCO2: Ir de izquierda a derecha, respetar el primer 1 que nos


encontremos y complementar el resto de bits

0111 -> 1001 (representación de -7)

1001 -> 0111 (representación de 7)


RESTA BINARIA
Complemento a dos
-1 +0
-2 1111 0000 +1
1110 0001
-3 +2 +
1101 0010
-4 1100 0011 +3 0 100 = + 4

-5 1011 0100 +4 1 100 = - 4


1010 0101
-6 +5 -
1001 0110
-7 1000 0111 +6
-8 +7

Hay una única representación para el cero (bueno)


Hay un número negativo más
Es menos intuitivo el obtener el negativo de un número
RESTA BINARIA
Suma y resta de números en complemento a uno

4 00100 -4 11011
+3 00011 + (-3) 11100
7 00111 -7 100111

1
Se suma el bit de acarreo 11000

4 00100 -4 11011 Ca1 del


resultado
-3 11100 +3 00011
1 100000 -1 11110
1

00001
RESTA BINARIA
Suma y resta de números en complemento a dos

4 00100 -4 11100
+3 00011 + (-3) 11101
7 00111 -7 111001
Se desprecia el bit de
acarreo
Ca2 del
4 00100 -4 11100 resultado
-3 11101 +3 00011
1 100001 -1 11111

La simplicidad de las operaciones aritméticas en la notación de complemento


a dos hace que esta notación sea la más utilizada en sistemas digitales
RESTA BINARIA
Sumador/Restador en complemento a dos

B3 B2 B1 B0

COMPL.
A3 A2 A1 A0

Co SUMADOR Ci 0 = SUMA
M
1 = RESTA

S3 S2 S1 S0
RESTA BINARIA
Sumador/Restador en complemento a uno

B3 B2 B1 B0

0 = SUMA
COMPL. M
A3 A2 A1 A0 1 = RESTA

Co SUMADOR Ci

S3 S2 S1 S0
RESTA BINARIA
Circuito complementador

COMPL.
RESTA BINARIA
Ejemplo de circuito complementador: 74487

B0 Y0
B1
Y1
B2
Y2
B3
Y3
L

B0 B1 B2 B3 → L=0, M=0 → B0 B1 B2 B3
B0 B1 B2 B3 → L=0, M=1 → B0 B1 B2 B3
B0 B1 B2 B3 → L=1, M=0 → 1 1 1 1
B0 B1 B2 B3 → L=1, M=1 → 0 0 0 0
DESBORDAMIENTO (OVERFLOW)

Si estamos trabajando con n bits (1 bit de signo y n-1 bits de magnitud) los
resultados de las operaciones no deben superar el siguiente rango:

-2n-1 ≤ resultado < 2n-1 -1

Por ejemplo, si trabajamos con n = 4 bits


-24-1 ≤ resultado < 24-1 -1
-8 ≤ resultado < 7
Si nos saliese un número mayor que 7 o menor que -8 es que se ha producido
un desbordamiento y el resultado no será correcto.
DESBORDAMIENTO (OVERFLOW)
Condición de desbordamiento
Sumar dos números positivos y obtener uno negativo o viceversa

-1 +0 -1 +0
-2 1111 0000 +1 -2 1111 0000 +1
1110 0001 1110 0001
-3 +2 -3
1101 1101 +2
0010 0010
-4 -4
1100 0011 +3 1100 0011 +3
-5 1011 -5 1011
0100 +4 0100 +4
1010 1010
-6 0101 -6 0101
1001
+5 +5
0110 1001 0110
-7 1000 0111 +6 -7 1000 +6
0111
-8 +7 -8 +7

5 + 3 = -8 ??? -7 - 2 = +7 ???
COMPARADORES BINARIOS DE
MAGNITUD
COMPARADORES BINARIOS DE
MAGNITUD

COMPARADOR 7485
UNIDAD ARITMÉTICO-LÓGICA (ALU)
ALU 74181
SUMA EN BCD
Representación de números en formato BCD
Los dígitos decimales del 0 al 9 se representan como 0000 a 1001 en binario

Suma:

5 = 0101 5 = 0101
Los problemas surgen
3 = 0011 8 = 1000 cuando el resultado
es mayor que nueve
1000 = 8 1101 = 13

Solución: sumar 6 (0110) si el resultado es mayor que 9

5 = 0101 9 = 1001

8 = 1000 7 = 0111

1101 = 13 en binario 1 0000 = 16 en binario

6 = 0110 6 = 0110

1 0011 = 1 3 en BCD 1 0110 = 1 6 en BCD


SUMA EN BCD
Bloque sumador BCD

A3 A2 A1 A0 B3 B2 B1 B0

Co SUMADOR Ci
BCD

S3 S2 S1 S0
RESTA EN BCD

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

Para ello tenemos que ver primero como se representan los números
BCD negativos
RESTA EN BCD
Complemento a diez
DEF: Si N es un número positivo, N es su negativo de tal forma que:
n
Ca10 (N) = N = 10 - N

Ej: Ca10 (3291) = 104-3291 = 10000-3291 = 6709 = 0110 0111 0000 1001

Complemento a nueve

DEF: Si N es un número 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 EN BCD
Resta de números en complemento a diez

Ej: 5239 - 3291 = 5239 + Ca10 (3291)

1 1
0 0101 0010 0011 1001

1 0110 0111 0000 1001

10 1011 1001 0100 10010


Se desprecia el
bit de acarreo 110 110

10001 11000

positivo 0001 1001 0100 1000 = 1948 OK


RESTA EN BCD
Resta de números en complemento a diez

Ej: 3291 - 5239 = 3291 + Ca10 (5239)

1 1
0 0011 0010 1001 0001

1 0100 0111 0110 0001

1 1000 1010 1111 0010

110 110

10000 10101

1 1000 0000 0101 0010 = -1948 OK

negativo Ca10 del resultado


RESTA EN BCD
Resta de números 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 EN BCD
Resta de números 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 EN BCD
Resta BCD de 2 dígitos en complemento a nueve

B7 B6 B5 B4 B3 B2 B1 B0

C9 C9
A7 A6 A5 A4 A3 A2 A1 A0

Co SUMADOR Ci Co SUMADOR Ci

S7 S6 S5 S4 S3 S2 S1 S0
RESTA BCD
Circuito complementador a nueve

C9

Vous aimerez peut-être aussi