Upload
others
View
12
Download
0
Embed Size (px)
Citation preview
UNIDADES TECNOLOGICAS DE SANTANDER
MATEMATICAS DISCRETAS
SEGUNDO CORTE
ARITMÉTICA BINARIA
La Unidad Aritmético Lógica, en la CPU del procesador, es capaz de realizar operaciones aritméticas, con datos numéricos expresados en el sistema binario. Naturalmente, esas operaciones incluyen la adición, la sustracción, el producto y la división. Las operaciones se hacen del mismo modo que en el sistema decimal, pero debido a la sencillez del sistema de numeración, pueden hacerse algunas simplificaciones que facilitan mucho la realización de las operaciones.
SUMA EN BINARIO
La tabla de sumar, en binario, es mucho más sencilla que en decimal. Sólo hay que recordar cuatro combinaciones posibles. Recuerda que en el sistema decimal había que memorizar unas 100 combinaciones.
Las sumas 0+0, 0+1 y 1+0 son evidentes:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
Pero la suma de 1+1, que sabemos que es 2, debe escribirse en binario con dos cifras (10) y, por tanto 1+1 es 0 y se arrastra una unidad, que se suma a la posición siguiente a la izquierda.
Veamos algunos ejemplos:
SUMA OCTAL
Este sistema solo puede trabajar con los números 1, 2, 3, 4, 5, 6, 7
SUMA 0 1
0 0 1
1 1 0 + a
SUMA HEXADECIMAL
8 + 8 = 16
Cómo el resultado no está entre el 0 y el 15, debemos de restar 16 al resultado y nos llevamos
1. Entonces
16 – 16 = 0; por lo tanto 8 + 8 será 10 (en el sistema hexadecimal)
A + 8 = 18
Al igual que en el caso anterior, cómo el resultado supera el 15, debemos de restar 16. Por lo tanto
18 – 16 = 2; el resultado de A + 7 será 12 (hexadecimal)
A + A = 20 Al igual que en los casos anteriores, debemos de restar 16
20 – 16 = 4; el resultado de A + A será 14 (hexadecimal)
F + D = 28 Debemos de restar 16
28 – 16 = 12; por lo que el resultado de F + D será 1C (debemos tener cuidado de cuando
utilizar las letras, ya que el 12 en hexadecimal es C)
RESTA EN BINARIO
Restar en binario es, nuevamente, igual que la misma operación en el sistema decimal. Pero conviene repasar la operación de restar en decimal para comprender la operación binaria, que es más sencilla. Los términos que intervienen en la resta se llaman minuendo, sustraendo y diferencia.
Las sumas 0-0, 1-0 y 1-1 son evidentes:
0 – 0 = 0
1 – 0 = 1
1 – 1 = 0
La resta 0 - 1 se resuelve, igual que en el sistema decimal, tomando una unidad prestada de la posición siguiente: 10 -1, es decir, 210 – 110 = 1
Esa unidad prestada debe devolverse, sumándola, a la posición siguiente. Veamos algunos ejemplos:
RESTA 0 1
0 0 1
1 1 + a 0
2
2
A pesar de lo sencillo que es el procedimiento de restar, es fácil confundirse. Tenemos interiorizado el sistema decimal y hemos aprendido a restar mecánicamente, sin detener nos a pensar en el significado del arrastre. Para simplificar las restas y reducir la posibilidad de cometer errores hay varias soluciones:
➢ Dividir los números largos en grupos. En el siguiente ejemplo, vemos cómo se divide
una resta larga en tres restas cortas:
100110011101 1001 1001 1101
010101110010 = 0101
0111
0010
010000101011 0100 0010 1011
➢ Utilizando el Complemento a dos
Complemento a dos
El complemento a dos de un número N, con n cifras, se define como CN =2n−N .
Veamos un ejemplo: tomemos el número N =1011012 que tiene 6 cifras, y
calculemos el complemento a dos de ese número:
N =4510 n=6 26=64 y, por tanto: CN=64−45=19=0100112
1
2
Complemento a uno
El complemento a uno de un número N, con n cifras es, por definición, una unidad menor que el complemento a dos, es decir:
CN=CN−1 y, por la misma razón, CN=CN 1 1 2 2 1
Calculemos el complemento a uno del mismo número del ejemplo anterior:
Da la sensación de que no va a ser más sencillo restar utilizando el complemento a dos,
porque el procedimiento para calcular el complemento a dos es más difícil y laborioso que la propia resta. Pero es mucho más sencillo de lo que parece.
En realidad, el complemento a uno de un número binario es el número resultante de invertir UNOS y CEROS.
Si N =101101
su complemento a uno es: CN=010010
y su complemento a dos es: CN=C N 1=010011 2 1
Veamos otro ejemplo de cálculo de complementos:
Si N =0110110101
El complemento a uno es: CN=1001001010 C N =1001001010 1 1
y el complemento a dos es: CN=1001001011
Restar en binario usando el complemento a dos
Y, por fin, vamos a ver cómo facilita la resta el complemento. La resta binaria de dos números puede obtenerse sumando al minuendo el complemento a dos del sustraen- do. Veamos algunos ejemplos:
a) Hagamos la siguiente resta, 91 – 46 = 45, en binario:
1011011
0101110
0101101
9110
4610
4510
Tiene alguna dificultad, cuando se acumulan los arrastres a la resta siguiente. Pero esta misma resta puede hacerse como una suma, utilizando el complemento a dos del sustraendo:
1011011
1010010
10101101
En el resultado nos sobra un bit, que se desborda por la
izquierda. Como el número resultante no puede ser más largo que el minuendo, el bit sobrante se desprecia.
Y, despreciando el bit que se desborda por la izquierda, llegamos al resultado correcto:
110001002 = 19610
RESTA OCTAL
RESTA HEXADECIMAL
En la resta las cosas se complican un poco. Para poder realizar la resta de dos números hexadecimales debemos sumar al minuendo el complemento a la quince del sustraendo y,
finalmente, sumarle 1 (el bit de overflow que desborda).
Aquí dejaremos un claro ejemplo de cómo se realiza la resta:
4AFC9 – DE8
Primero, el minuendo y el sustraendo deben de tener la misma cantidad de números. Por esto, añadiremos 0 para que ambos tengan la misma cantidad
4AFC9 – 00DE8
Luego, debemos de crear un nuevo número con la misma cantidad de números que posee el sustraendo. Este debe ser el mayor del sistema hexadecimal, que al ser 15 corresponde a la
letra F. La resta se hace siguiendo las normas generales, con cada valor que corresponde a cada letra a operar.
FFFFF – 00DE8 = FF217
Ahora deberemos de sumar el minuendo y el complemento a 15 obtenido recientemente,
utilizando la suma en sistema hexadecimal.
A4FC9 – FF217 = 1A41E0
Este resultado claramente no es el final ya que posee más números que al comienzo.
Debemos de quitar el número de la izquierda (en este caso es el 1) y sumarlo.
A41E0 + 1 = A41E1
Por lo tanto, 4AFC9 – DE8 es A41E1
Explicación: A es menor que C, entonces A pide prestado 1 unidad a 7(1 unidad =16 por
trabajar en base hexadecimal) en donde 7 se convierte en 6 y la unidad se suma con A, el resultado seria 26, 26-12=14(E). Y el resto se resta normalmente.
MULTIPLICACIÓN BINARIA
La multiplicación en binario es más fácil que en cualquier otro sistema de numeración.
Como los factores de la multiplicación sólo pueden ser CE- ROS o UNOS, el producto sólo puede ser CERO o UNO. En otras palabras, la tabla de multiplicar es muy fácil de aprender
En un ordenador, sin embargo, la operación de multiplicar se realiza mediante sumas repetidas. Eso crea algunos problemas en la programación porque cada suma de dos UNOS origina un arrastre, que se resuelven contando el número de UNOS y de arrastres en cada columna. Si el número de UNOS es par, la suma es un CERO y si es impar, un UNO. Luego, para determinar los arrastres a la posición superior, se cuentan las parejas de UNOS.
POR 0 1
0 0 0
1 0 1
MULTIPLICACIÓN OCTAL
MULTIPLICACIÓN HEXADECIMAL
Para realizar la multiplicación es importante hacer uso de la siguiente tabla de
multiplicación hexadecimal, similar a la que se usa en el caso decimal.
x 1 2 3 4 5 6 7 8 9 A B C D E F 10
1 1 2 3 4 5 6 7 8 9 A B C D E F 10
2 2 4 6 8 A C E 10 12 14 16 18 1A 1C 1E 20
3 3 6 9 C F 12 15 18 1B 1E 21 24 27 2A 2D 30
4 4 8 C 10 14 18 1C 20 24 28 2C 30 34 38 3C 40
5 5 A F 14 19 1E 23 28 2D 32 37 3C 41 46 4B 50
6 6 C 12 18 1E 24 2A 30 36 3C 42 48 4E 54 5A 60
7 7 E 15 1C 23 2A 31 38 3F 46 4D 54 5B 62 69 70
8 8 10 18 20 28 30 38 40 48 50 58 60 68 70 78 80
9 9 12 1B 24 2D 36 3F 48 51 5A 63 6C 75 7E 87 90
A A 14 1E 28 32 3C 46 50 5A 64 6E 78 82 8C 96 A0
B B 16 21 2C 37 42 4D 58 63 6E 79 84 8F 9A A5 B0
C C 18 24 30 3C 48 54 60 6C 78 84 90 9C A8 B4 C0
D D 1A 27 34 41 4E 5B 68 75 82 8F 9C A9 B6 C3 D0
E E 1C 2A 38 46 54 62 70 7E 8C 9A A8 B6 C4 D2 E0
F F 1E 2D 3C 4B 5A 69 78 87 96 A5 B4 C3 D2 E1 F0
10 10 20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0 100
Lo que se quiere es efectuar la multiplicación hexadecimal de forma análoga a la multiplicación decimal.
DIVISIÓN BINARIA
Igual que en el producto, la división es muy fácil de realizar, porque no son posibles en el cociente otras cifras que UNOS y CEROS.
Consideremos el siguiente ejemplo, 42 : 6 = 7, en binario:
(Dividendo)
1 0 1 0 1 0 110 (Divisor)
- 1 1 0
111 (Cociente)
1 0 0 1
- 1 1 0
0 1 1 0
1 1 0
0 0 0
Se intenta dividir el dividendo por el divisor, empezando por tomar en ambos el mismo número de cifras (100 entre 110, en el ejemplo). Si no puede dividirse, se intenta la división tomando un dígito más (1001 entre 100).
Si la división es posible, entonces, el divisor sólo podrá estar contenido una vez en el dividendo, es decir, la primera cifra del cociente es un UNO. En ese caso, el resultado de multiplicar el divisor por 1 es el propio divisor. Restamos las cifras del dividendo del divisor y bajamos la cifra siguiente.
El procedimiento de división continúa del mismo modo que en el sistema decimal.
DIVISIÓN OCTAL
DIVISIÓN HEXADECIMAL
La división hexadecimal sigue el mismo principio que en otros sistemas numéricos. Veamos
un ejemplo en donde realizaremos la división paso a paso. Ejemplo: AE88716 / 3A16
Lo primero será realizar una tabla con los múltiplos de 3A, los cuales son:
1 2 3 4 5 6 7 8 9 A B C D E F
3A 74 AE E8 122 15C 196 1D0 20A 244 27E 2B8 2F2 32C 366
Buscamos en la tabla primer múltiplo de 3A próximos a los dos primeros dígitos (AE). En este
caso es 3.
Procedemos de manera análoga al paso anterior. El dígito siguiente (8) es menor que 3A, razón por la cual agregamos un cero al cociente y realizamos la división al 88.
Buscamos un múltiplo de 3A próximo a 88. Revisando en la tabla apreciamos que este valor es 2, cuyo múltiplo es 74.
Finalmente, repitiendo el procedimiento, vemos que el resultado de la división es 3025, quedando como resto 25.
EJERCICIOS
1. Realiza las siguientes sumas de números binarios:
a) 101 + 10 b) 110011 + 011011
c) 1010 + 101 d) 1111 + 1111
e) 01011 + 110011
f) 111011 + 110 g) 111110111 + 111001 h) 10111 + 11011 + 10111
2. Realiza las siguientes sumas de números octales:
a) 365 + 23 b) 2732 + 1265 c) 65 + 1773
3. Suma los siguientes números hexadecimales:
a) F + E = b) A + 2 =
c) B + 8 = d) C + D =
e) F + 9 =
f) 17A + 3C g) 20F5 + 31B h) 2E70C + 1AA7F
4. Realiza las siguientes restas de números binarios:
a) 101 – 10 b) 11010 – 110011
c) 1010 – 1011
d) 11100110 – 1100 e) 1111 – 101
f) 111011 - 110 g) 111110111 - 111001 h) 1010111 - 11011 – 10011
5. Resta los siguientes números octales:
a) 365 - 23 b) 2732 - 1265 c) 1773 – 65
6. Realiza las siguientes restas de números hexadecimales:
a) A2C8 – 9B = b) EF76B – CC =
c) 8BB42 – E1 = d) 41AC – 82 =
e) DAB – 43 =
f) 17A - 3C g) 20F5 - 31B h) 2E70C - 1AA7F
7. Realiza las siguientes multiplicaciones de números binarios:
a) 1001 x 101 = b) 10110 x 1001= c) 11001 x 00101 = d) 10110101000 x 1011 = b) 101000011 x 10011 =
8. Realiza la siguiente multiplicación de números octales.
a) 7306 x 7 = b) 4440 x 6= c) 7757 x 11 = d) 4774 x 27 = c) 3663 x 14 =
9. Realiza la siguiente multiplicación de números hexadecimales.
a) 13A x B6 = b) 35 x 8= c) 7DE4 x 3A = d) 45B5 x 7B7 = d) 3AFE x 2AA =
10. Realiza las siguientes divisiones binarias:
a) 10110101000101/ 1011 = b) 10100001111011 / 10011 = c) 111001 / 11 = d) 1011101 / 1001 = e) 11001 / 111 =
11. Realiza las siguientes divisiones octales: a) 57552 / 73 = b) 474154 / 62= c) 22660 / 11 = d) 11320 / 72 = e) 206756 / 22 =
12. Realiza las siguientes divisiones hexadecimales:
a) 184783 / B5 = b) A1E81E / F6= c) 4D3EF2 / C9 = d) 5F8604 / 83 = f) 3B2260 / E0 =