Sei sulla pagina 1di 18

ELECTRONICA DIGITAL Y MICROPROGRAMABLE

UT2. Operaciones aritméticas con números binarios

1. Introducción.

Un de los precursores de la aritmética fue Pitágoras, y básicamente son sumas


y restas.

Un ejemplo en decimal:

1 1 ACARREO
3 8 9
2 1 2
6 0 1
2. Suma en binario.

Existen cuatro posibilidades:

 0+0=0
 0+1=1
 1+0=1
 Y 1+1=0 y 1 de acarreo.

Ejemplo:

Bin. Dec.
1 1 1
+1 +1
1 0 2

Ejemplo:

Bin. Dec.
1 1 1 1
1 1 0 1 1 2 7
+1 0 0 1 1 +1 9
1 0 1 1 1 0 4 6

Ejemplo:

U. T.2: Operaciones aritméticas con números binarios -1-


Bin. Dec.
1 1 1 1 1 1 1 1 1 1
1 0 0 1 1 0 1 1 1 5 5
+1 1 1 1 1 1 1 1 +2 5 5
1 1 0 0 1 1 0 1 0 4 1 0

Ejercicios:

a) 11101111 + 10110110

Bin. Dec.
1 1 1 1 1 1 1 1 1
1 1 1 0 1 1 1 1 2 3 9
+1 0 1 1 0 1 1 0 +1 8 2
1 1 0 1 0 0 1 0 1 4 2 1

b) 1010101 + 0101010

Bin. Dec.
1
1 0 1 0 1 0 1 8 5
+0 1 0 1 0 1 0 +4 2
1 1 1 1 1 1 1 1 2 7

c) 0110111 + 0110111 + 0110111 + 1111001

Bin. Dec.
1 1 1 1 1 1 1
0 1 1 0 1 1 1 5 5
+0 1 1 0 1 1 1 +5 5
1 1 0 1 1 1 0 1 1 0

Bin. Dec.
1 1 1 1 1 1 1
0 1 1 0 1 1 1 5 5
+1 1 1 1 0 0 1 +1 2 1
1 0 1 1 0 0 0 0 1 7 6

U. T.2: Operaciones aritméticas con números binarios -2-


Bin. Dec.
1 1 1
1 1 0 1 1 1 0 1 1 0
+1 0 1 1 0 0 0 0 +1 7 6
1 0 0 0 1 1 1 1 0 2 8 6

3. Resta binaria.

Existen cuatro posibilidades:



 0-0=0
 1-1=0
 1-0=1
 Y 0-1=1 y presto 1 (Borrow).

Ejemplo:
Bin. Dec.
1 0 0 0 0 1 0 0 1 2 6 5
-0 0 0 1 0 0 1 1 0 -3 8
1 1 1 1 1 1
0 1 1 1 0 0 0 1 1 2 2 7

Ejercicios:

a) 6310 - 2910

Bin. Dec.
1 1 1 1 1 1 6 3
-1 1 1 0 1 -2 9
1
1 0 0 0 1 0 3 4

b) 6410 - 2910

Bin. Dec.
1 0 0 0 0 0 0 6 4
-1 1 1 0 1 -2 9
1 1 1 1 1 1 1
0 1 0 0 0 1 1 3 5

Como resumen:

Sería muy complejo tener que diseñar un circuito para la suma y otro para la
resta. Cuando se quiere realizar una resta lo que se hace es convertir en
negativo el sustraendo, es decir, realizar el complemento (complemento A1 y
A2).

U. T.2: Operaciones aritméticas con números binarios -3-


3.1. COMPLEMENTO A 1. (C1)

En general:

Nb1 C1 = (bn-1)-N n= número de cifras.

Ejemplo:

25110 = (103-1)-251.

En binario:

N2 C1 = (2n-1)-N n= número de bits.

Para hacer el complemento a 1 de un número binario se cambian ceros por


unos y unos por ceros, incluido el bit de signo.
El bit de signo es el bit de mayor peso. Si el bit de signo está a 0, el número es
positivo y si está a 1, es negativo.

 Ejemplo:

13910 = 02 100010112

Convertimos en negativo mediante C1

-13910 = 1 011101002

 Ejemplo:

101011C1010100 = +2010

Equivale a -2010

 Ejemplo:

1101101C10010010 = +1810

Equivale a -1810

1
Base.
2
Bit de signo.

U. T.2: Operaciones aritméticas con números binarios -4-


 Ejemplo:

4510C1

4510 = 0 1011012C1 1 010010

RESTA EN COMPLEMENTO A1

Para hacer la resta en complemento a 1, primero se resta al minuendo el C1


del sustraendo. Si se produce acarreo final se le suma al bit menos
significativo.

Ejemplo:

3710 – 2210

3710 = 0 100101

– 2210 = 1 010110 (como tiene menos bits, rellenamos con ceros a la


izquierda)  C1  0 101001

Dec. B.S. IMPORTANTE: El acarreo se le suma al bit


1 1 menos significativo (no al bit de signo).
3 7 0 1 0 0 1 0 1
-2 2 0 1 0 1 0 0 1
0 0 0 1 1 1 0
+1
1 5 0 0 0 1 1 1 1

Ejemplo:

2510 – 1010

2510 = 0 11001

– 1010 = 1 01010  C1  0 10101

Dec. B.S.
1 1
2 5 0 1 1 0 1 0
-1 0 0 1 0 1 1 0
0 0 1 1 0 1
+1
1 5 0 0 1 1 1 1

U. T.2: Operaciones aritméticas con números binarios -5-


Ejemplo:

2210 – 3710

2210 = 0 10110

-3710 = 1 100101  C1  0 011010

Dec. B.S.
1 1 1 1
1
2 2 0 0 1 0
1 1 0
-3 7 0 0 1 1
0 1 0
1 5 0 1 1 0
0 0 0 IMPORTANTE: El número que nos da equivale
Comprobamos C1  a +15, si le hacemos el complemento a 1,
-1 5 1 0 0 1 1 1 1 debe ser igual a -15.

3.2. COMPLEMENTO A 2. (C2)

Consiste en restar dicho número a 2n

N2 C2 = 2n-N n= número de bits.

De forma práctica se obtiene sumando 1 al complemento a 1 de dicho número.

Ejemplo:

13910  0 100010112  C1  1 01110100

C1 + 1 = C2  1 01110101

Ejemplo:

3510  0 1000112  C1  1 011100

C1 + 1 = C2  1 011101

Truco: para convertir de binario a C2 se cambian ceros por unos y unos por
ceros a partir del primer uno (este se respeta) empezando por la derecha,
incluido el bit de signo.

RESTA EN COMPLEMENTO A 2

Sumamos al minuendo el C2 del sustraendo; el acarreo final, si lo hay, se


ignora.

U. T.2: Operaciones aritméticas con números binarios -6-


Ejemplo:

3710 - 2210

3710 = 0 100101

– 2210 = 1 010110 (como tiene menos bits, rellenamos con ceros a la izquierda)
 C2  0 101010

Dec. B.S. IMPORTANTE: El acarreo, si lo hay, NO se le


(El acarreo se desprecia) suma al bit de signo, se desprecia.
1
3 7 0 1 0 0 1 0 1
-2 2 0 1 0 1 0 1 0
1 5 0 0 0 1 1 1 1

Ejemplo:

2210 - 3710

2210 = 0 10110

-3710 = 1 100101  C2  0 011011

Dec. B.S. IMPORTANTE: Para comprobar, volvemos a


1 1 1
1 hacer el C2 (Respetamos el primer uno) y lo
2 2 0 0 1 0
1 1 0 hacemos positivo.
-3 7 0 0 1 1
0 1 1
-1 5 0 1 1 0
0 0 1
Comprobamos C2 
1 5 0 0 0 1 1 1 1

Ejemplo:

3310 - 1210

3310 = 0 100001

-1210 = 1 001100  C2  0 110100

Dec. B.S.
1(Se desprecia)
3 3 0 1 0 0 0 0 1
-1 2 0 1 1 0 1 0 0
2 1 0 0 1 0 1 0 1

U. T.2: Operaciones aritméticas con números binarios -7-


EJERCICIOS:

1. Operaciones en C1 y C2:

a) 1810 – 710

1810 = 0 10010

– 710 = 1 00111

EN C1:

– 710 = 1 00111  C1  0 11000

Dec. B.S.
1
1 8 0 1 0 0 1 0
-7 0 1 1 0 0 0
0 0 1 0 1 0
+1
1 1 0 0 1 0 1 1

EN C2:

– 710 = 1 00111  C2  0 11001

Dec. B.S.
1(Se desprecia)
1 8 0 1 0 0 1 0
-7 0 1 1 0 0 1
1 1 0 0 1 0 1 1

b) 37110 – 12510

37110 = 0 101110011

– 12510 = 1 001111101

EN C1:

– 12510 = 1 001111101  C1  0 110000010

U. T.2: Operaciones aritméticas con números binarios -8-


Dec.
B.S.
1 1
3 7 1 0 1 0 1 1 1 0 0 1 1
-1 2 5 0 1 1 0 0 0 0 0 1 0
0 0 1 1 1 1 0 1 0 1
1 +1
2 4 6 0 0 1 1 1 1 0 1 1 0

EN C2:

– 12510 = 1 001111101  C2  0 110000011

Dec.
B.S.
1 1 1
3 7 1 0 1 0 1 1 1 0 0 1 1
-1 2 5 0 1 1 0 0 0 0 0 1 1
2 4 6 0 0 1 1 1 1 0 1 1 0

c) 3610 – 12010

3610 = 0 0100100

– 12010 = 1 1111000

EN C1:

– 12010 = 1 1111000  C1  0 0000111

Dec. B.S.
1
3 6 0 0 1 0 0 1 0 0
-1 2 0 0 0 0 0 0 1 1 1
8 4 0 0 1 0 1 0 1 1
Comprobamos C 1
-8 4 1 1 0 1 0 1 0 0

EN C2:

– 12010 = 1 1111000  C2  0 0001000

Dec. B.S. Como resumen:


 En C1, el acarreo se suma.
3 6 0 0 1 0 0 1 0 0  En C2, se desprecia.
-1 2 0 0 0 0 0 1 0 0 0  Cuando el resultado es negativo,
8 4 0 0 1 0 1 1 0 0 le hacemos de nuevo el
Comprobamos C2 complemento, y lo hacemos
-8 4 1 1 0 1 0 1 0 0 positivo o viceversa.

U. T.2: Operaciones aritméticas con números binarios -9-


4. Sumas y restas en BCD natural. (Decimal codificado en binario)

4.1. SUMA EN BCD

Se suma como en binario, y si el número resultante es superior a 9 es necesario


realizar la corrección decimal, es decir, sumarle 6.

Ejemplo:

610 + 410

610 = 01102

410 = 01002

1
0 1 1 0
+ 0 1 0 0
1 1 1
1 0 1 0
Como >9 + 0 1 1 0
En BCD 1 0 0 0 0

Ejemplo:

810 + 910

810 = 10002

910 = 10012

1
1 0 0 0
+ 1 0 0 1
1 0 0 0 1
Como >9 + 0 1 1 0
En BCD 1 0 1 1 1

EJERCICIOS:

2. Sumas en binario:

a) 310 + 910

310 = 00112

910 = 10012

U. T.2: Operaciones aritméticas con números binarios -10-


1 1
0 0 1 1
+ 1 0 0 1
1 1 0 0

b) 4510 + 6810

4510 = 1011012

6810 = 10001002

1 1
0 1 0 1 1 0 1
+ 1 0 0 0 1 0 0
1 1 1 0 0 0 1

c) 3310 + 1510 + 15010

3310 = 1000012

1510 = 11112

15010 = 100101102

1 1 1 1 1 1
1 0 0 0 0 1 1 1 0 0 0 0
+ 0 0 1 1 1 1 + 1 0 0 1 0 1 1 0
1 1 0 0 0 0 1 1 0 0 0 1 1 0

3. Suma las expresiones anteriores en BCD

a) 310 + 910

310 = 00112

910 = 10012

1 1
0 0 1 1
+ 1 0 0 1
1 1
1 1 0 0
Como >9 0 1 1 0
1 0 0 1 0

U. T.2: Operaciones aritméticas con números binarios -11-


b) 4510 + 6810

410 = 01002

510 = 01012

610 = 01102

810 = 10002

1
0 0 0 0 0 1 0 0 0 1 0 1
0 0 0 0 + 0 1 1 0 + 1 0 0 0
1 1
0 0 0 0 + 1 0 1 0 1 1 0 1
+ 1 1 1
1 0 1 1 + 0 1 1 0
+ 0 1 1 0
0 0 0 1 0 0 0 1 0 0 1 1

c) 3310 + 1510+ 15010

310 = 00112
1 1 1 1 1
110 = 00012 0 0 1 1 0 0 1 1
+ 0 0 0 1 + 0 1 0 1
510 = 01012 1
0 1 0 0 1 0 0 0
010 = 00002 0 0 0 1 + 0 1 0 1 + 0 0 0 0
0 0 0 1 1 0 0 1 1 0 0 0

Ejemplo:

3710 + 6210
1 1 1 1
310 = 00112 0 0 1 1 0 1 1 1
+ 0 1 1 0 + 0 0 1 0
710 = 01112 1 0 0 1 1 0 0 1

610 = 01102

210 = 00102

Ejemplo:

4710 + 6910

U. T.2: Operaciones aritméticas con números binarios -12-


410 = 01002
Como 100002 es > 910 debemos
710 = 01112 hacer la corrección, y el uno de
acarreo se lo sumamos a la columna
610 = 01102 anterior. 
1 1 1 1 1
910 = 10012 0 1 0 0 0 1 1 1
+ 0 1 1 0 + 1 0 0 1
1 1 1
1 0 1 1 0 0 0 0
+ 0 1 1 0 + 0 1 1 0
1 0 0 0 1 0 1 1 0

Ejemplo:

3910 + 9210

310 = 00112
1 1 1
910 = 10012 0 0 1 1 1 0 0 1
+ 1 0 0 1 + 0 0 1 0
210 = 00102 1 1 1 1
1 1 0 1 1 0 1 1
+ 0 1 1 0 + 0 1 1 0
1 0 0 1 1 0 0 0 1

4.2. RESTA EN BCD

Tenemos que hacer el complemento de cada número. Se hace el complemento


a 9. Se suma al minuendo el complemento a 9 del sustraendo (C9). En caso de
resultar un número superior a 9 se realizará la corrección, es decir, se le suma
6.
Complemento a 9 de un número: restamos dicho número a 9.

NC9 = 9-N C9 de un Nº X = 9-X

Si se trata de un número negativo, volvemos a hacer el complemento a 9 para


saber de que número se trata.

Ejemplo:

U. T.2: Operaciones aritméticas con números binarios -13-


23910 - 12710

Lo primero que se hace es poner el bit de signo, luego codificamos cada uno de
los números.

23910  0 0010 0011 1001BCD

- 12710  1 1000 0111 0010C9

Luego sumamos. Si cada suma individual nos da un nº > 9, entonces hacemos


la corrección.

Los que me llevo, los apuntamos en la columna siguiente.

1 1 1 1
0 0 0 1 0 0 0 1 1 1 0 0 1
+ 1 + 1 0 0 0 + 0 1 1 1 + 0 0 1 0
1 1 1 1 1 1 1 1 1
1 0 1 0 1 0 1 0 1 10 1
+ + 0 1 1 0 + 0 1 1 0 + 0 11 0
1
0 0 0 0 1 0 0 0 1 0 0 0 1
+ 1
0 0 0 0 1 0 0 0 1 0 0 1 0

El arrastre del bit de signo se suma a la cifra de menor peso3

Ejemplo:

329610 - 197510

329610  0 0011 0010 1001 0110BCD

- 197510  1 1000 0000 0010 0100C9

1 1 1
0 0 0 1 1 0 0 1 0 1 0 0 1 0 1 1 0
+ 1 + 1 0 0 0 + 0 0 0 0 + 0 0 1 0 + 0 1 0 0
0 1 1 1 1 1 1 1 1 1
1 0 1 1 0 0 1 0 1 0 1 1 1 0 1 0
+ 0 1 1 0 + 0 1 1 0 + 0 1 1 0

0 0 0 0 1 0 0 1 1 0 0 1 0 0 0 0 0
+ 1
0 0 0 0 1 0 0 1 1 0 0 1 0 0 0 0 1

3
Supongo.

U. T.2: Operaciones aritméticas con números binarios -14-


Ejemplo:

182910 - 236210

182910  0 0001 1000 0010 1001BCD

- 236210  1 0111 0110 0011 0111C9

1 1 1 1 1 1 1 1 1
0 0 0 0 1 1 0 0 0 0 0 1 0 1 0 0 1
+ 1 + 0 1 1 1 + 0 1 1 0 + 0 0 1 1 + 0 1 1 1
1 1 1
1 1 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0
+ + 0 1 1 0 + 0 1 1 0

1 1 0 0 1 0 1 0 0 0 1 1 0 0 1 1 0
Como el resultado es negativo (el bit de signo es 1) hacemos el C9 del
resultado para averiguar que nº es
0 0 0 0 0 1 0 1 0 0 1 1 0 0 1 1

EJERCICIOS:

4. Los siguientes números están en C1. Indica su valor decimal:

a) 01001001 C1  Como no es negativo se queda igual = 7310

b) 10101001 C1  Volvemos ha hacer C1 010101102 =8610

c) 10001101 C1  011100102 = 11410

5. Los siguientes números están en C2. Indica su valor decimal:

a) 01110011 C2  Como no es negativo se queda igual = 11510

b) 10011111 C2  Volvemos ha hacer C2 011000012 = 9710

c) 10101011 C2  Volvemos ha hacer C2 010101012 = 8510

6. Resta los siguientes números en BCD:

U. T.2: Operaciones aritméticas con números binarios -15-


a) 1510 – 610

1510  0 0001 0101 BCD

- 610  1 1001 0011C9

1 1 1 1 1 1
0 0 0 0 1 0 1 0 1
+ 1 + 1 0 0 1 + 0 0 1 1
1 1
1 0 1 0 1 0 0 0
0 + 0 1 1 0

0 0 0 0 0 1 0 0 0
+ 1
0 0 0 0 0 1 0 0 1

b) 2110 – 3210

2110  0 0010 0001 BCD

- 3210  1 0110 0111C9

1 1 1 1 1
0 0 0 1 0 0 0 0 1
+ 1 + 0 1 1 0 + 0 1 1 1

1 1 0 0 0 1 0 0 0
Comprobamos haciendo C9
0 0 0 1 0 0 0 1

c) 4210 – 3010

4210  0 0100 0010 BCD 1 1 1


0 0 1 0 0 0 0 1 0
- 3010  1 0110 1001C9 + 1 + 0 1 1 0 + 1 0 0 1
1 1 1 1 1
1 0 1 0 1 0 1 1
0 0 1 1 0 + 0 1 1 0
1
0 0 0 0 1 0 0 0 1
+ 1
0 0 0 0 1 0 0 1 0

U. T.2: Operaciones aritméticas con números binarios -16-


d) 7710 – 710

7710  0 0111 0111 BCD

- 710  1 1001 0010C9

1 1 1 1 1 1 1
0 0 1 1 1 0 1 1 1
+ 1 + 1 0 0 1 + 0 0 1 0
1 1
0 0 0 0 0 1 0 0 1
+ 0 1 1 0 + 1
1 1
0 0 1 1 1 1 0 1 0
+ 0 1 1 0
0 0 1 1 1 0 0 0 0

e) 9910 – 910

9910  0 1001 1001 BCD

- 910  1 1001 0000C9

1 1 1
1 1 0 0 1 1 0 0 1
+ 0 + 1 0 0 1 + 0 0 0 0
1 1 1
0 0 0 1 0 1 0 0 1
+ 0 1 1 0 + 1
1
1 1
1 0 0 0
1 0 1 0
+ + 0 1 1 0
0 1 0 0 1 0 0 0 0

EJERCICIOS:

7. Suma y resta en C2:

a) 2510 + 3710

2510 = 0110012
1
3710 = 1001012 0 1 1 0 0 1
+ 1 0 0 1 0 1
1 1 1 1 1 0

U. T.2: Operaciones aritméticas con números binarios -17-


b) 2510 - 3710

2510 = 0 0110012
1 1 1 1
-3710 =1 1001012 = 0 011011C2 0 0 1 1 0 0 1
+ 0 + 0 1 1 0 1 1
0 1 1 0 1 0 0
Comprobamos C2
1 0 0 1 1 0 0

8. Suma y resta en C1:

a) 2910 + 9310 1 1 1 1
0 0 1 1 1 0 1
2910 = 00111012 + 1 0 1 1 1 0 1
1 1 1 1 0 1 0
9310 = 10111012

b) 2910 - 9310

2910 = 0 00111012

-9310 =1 10111012 = 0 100010C1 0 0 0 1 1 1 0 1


+ 0 0 1 0 0 0 1 0
0 0 1 1 1 1 1 1
Comprobamos  C1 
1 1 0 0 0 0 0 0

9. Suma en binario y hexadecimal:

a) 13510 + 25310

13510 = 100001112
1 1 1 1 1 1 1 1
1 0 0 0 0 1 1 1
25310 = 111111012 + 1 1 1 1 1 1 0 1
1 1 0 0 0 0 1 0 0

U. T.2: Operaciones aritméticas con números binarios -18-

Potrebbero piacerti anche