Escolar Documentos
Profissional Documentos
Cultura Documentos
Sistemas de numeracin
1 SISTEMAS DE NUMERACION
1.1 Introduccin
Los sistemas de numeracin son conjuntos de dgitos que se usan para representar cantidades, as se tienen los sistemas de numeracin decimal, binario, octal, hexadecimal, romano, etc. Los cuatro primeros se caracterizan por tener una base (nmero de dgitos diferentes: diez, dos, ocho, diecisis dgitos respectivamente) mientras que el sistema romano no posee base y resulta ms complicado su manejo tanto con nmeros, as como en las operaciones bsicas. Los sistemas de numeracin que poseen una base tienen la caracterstica de cumplir con la notacin posicional, es decir, la posicin de cada nmero le da un valor o peso, as el primer dgito de derecha a izquierda despus del punto decimal, tiene un valor igual a b veces el valor del dgito, y as el dgito tiene en la posicin n un valor igual a b A donde, b = valor de la base del sistema, n = posicin del dgito, A = dgito. Por ejemplo: dgitos 1 2 4 9 5 3. 3 2 4 posicin 5 4 3 2 1 0 -1 -2 -3
n
1 de 29
Sistemas de numeracin
n= m
b a
n n= k
m = Posicin del dgito que se localiza en la derecha. k = Posicin del dgito que se localiza a la izquierda. b = Valor de la base. n = Posicin del dgito a evaluar. a = dgito a evaluar.
Para el ejemplo:
-3
n= _ 3
10 a
n
n=3
= 5*10 + 2*10 + 1*10 + 9*10 + 8*10 + 4*10 + 3*10 = 0.005 + 0.02 + 0.1 + 9 + 80 + 400 + 3000 = 3489.125
-2
-1
1.2.1 Notacin Posicional del Sistema Decimal -6 10 = 0.000001 -5 10 = 0.00001 -4 10 = 0.0001 -3 10 = 0.001 -2 10 = 0.01 -1 10 = 0.1 0 10 = 1 1 10 = 10 2 10 = 100 3 10 = 1000 4 10 = 10000 5 10 = 100000 6 10 = 1000000
2 de 29
Sistemas de numeracin
A la representacin de un dgito binario se le llama bit (de la contraccin binary y digit) y al conjunto de 8 bits se le llama byte, as por ejemplo: 110 contiene 3 bits, 1001 contiene 4 y 1 contiene 1 bit. Como el sistema binario usa la notacin posicional, entonces el valor de cada dgito depende de la posicin que tiene en el nmero, as por ejemplo el nmero 110101b es: 1*2 + 0*2 + 1*2 + 0*2 + 1*2 + 1*2 = 1 + 4 +16 + 32 = 53d Entonces, el nmero 110101b = 53d, donde el subndice indica la base, b = binario, d = decimal. Los nmeros binarios fraccionarios se expresan de igual manera en notacin posicional y as se tiene 2 = 0.000001 -5 2 = 0.00001 -4 2 = 0.0001 -3 2 = 0.001 -2 2 = 0.01 -1 2 = 0.1 0 2 =1 y ahora, el nmero 1101.101b es: 1*2 + 0*2 + 1*2 + 1*2 + 1*2 + 0*2 + 1*2 = 1+0+4+8+0.5+0+0.125 = 13.625 entonces, 1101.101b = 13.625d
0 1 2 3 -1 -2 -3 -6 0 1 2 3 4 5
3 de 29
Sistemas de numeracin
1.4.1 Notacin Posicional para el Sistema de Numeracin Octal -6 8 = 0.000003819697140625d = 0.000001q -5 8 = 0.000030517578125d = 0.00001q -4 = 0.0001q 8 = 0.000244140625d -3 8 = 0.0011953125d = 0.001q -2 8 = 0.015625d = 0.01q -1 8 = 0.125d = 0.1q 0 1d = 1q 8 = 1 8 = 8d = 10q 2 8 = 64d = 100q 3 8 = 522d = 1000q 4 8 = 4,096d = 10000q 5 8 = 32,868d = 100000q 6 8 = 262,144d = 1000000q
Usando la notacin posicional para el nmero 3CF.4Eh (el subndice h se usa para indicar un nmero en hexadecimal): 3*16 + C*16 + F*16 + 4*16 + E*16 = = 3*256 + 12*16 + 15*1 + 4*0.625 + 14*0.00390625 = 768 + 192 + 15 + 2.5 + 0.0546875 = 977.5546975d entonces, 3CF.4Eh = 977.5546975d
Departamento de sistemas y computacin 4 de 29
2 1 0 -1 -2
Sistemas de numeracin
1.5.1 Notacin Posicional del Sistema de Numeracin Hexadecimal -6 16 = 0.00000005960464477890625d = 0.000001h -5 16 = 0.0000009536743164625d = 0.00001h -4 = 0.0001h 16 = 0.0000152587890625d -3 16 = 0.000244140625d = 0.001h -2 16 = 0.00390625d = 0.01h -1 16 = 0.0625d = 0.1h 0 1d = 1h 16 = 1 16 = 16d = 10h 2 16 = 256d = 100h 3 16 = 4,096d = 1000h 4 16 = 65,536d = 10000h 5 16 = 1,048,576d = 100000h 6 16 = 16,777,216d = 1000000h
Cualquier procesador emplea sus datos en binario, por lo tanto, deben convertirse a esta base si se encuentran en una base distinta. Para convertir un nmero binario a decimal, es necesario sumar cada dgito, por el peso de su posicin, o sea usando notacin posicional.
ENTERO FRACCION
1 1 1 1 1 1 1 1.1 1 1 1 binario 128 64 32 16 8 4 2 1 .5 .25 .125 .0625 decimal Por ejemplo, el nmero binario 10110b tiene su equivalente decimal, el cual es: 1*2 + 0*2 + 1*2 +1*2 + 0*2 = 16 + 4 + 2 + 0 = 22d Ejercicio: Usando el proceso de conversin de binario a decimal encuentre el equivalente decimal de los siguientes nmeros en binario: 101110 110011.1 101111.1111 10.01 110000.1101 111000.0011 1110111.101 1.6.2 Conversin de Decimal a Binario Para convertir un nmero del sistema decimal al sistema binario o cualquier otra base, se emplea la divisin sucesiva y el residuo, o sea, se divide el nmero en decimal entre la otra base y el residuo es un dgito del nmero en la otra base; despus el cociente que
Departamento de sistemas y computacin 5 de 29
4 3 2 1 0
Sistemas de numeracin
se obtiene se vuelve a dividir entre la base y el nuevo residuo es el siguiente dgito ms significativo que el anterior del nmero en la otra base. Para convertir una fraccin decimal a otra base entonces se emplea multiplicacin sucesiva de la fraccin por la base, y el sobreflujo (entero) obtenido es un dgito del nmero en la otra base y la fraccin restante se vuelve a multiplicar para obtener el siguiente elemento y as sucesivamente, por ejemplo: convertir el nmero decimal 137.953125d a binario. Parte Entera 137 2 = 68 68 2 = 34 34 2 = 17 17 2 = 8 82= 4 42= 2 22= 1 12= 0 Residuo 1 0 0 1 0 0 0 1 Sobreflujo Fraccin 0.953125 x 2 = 1.90625 0.90625 x 2 = 1.8125 0.8125 x 2 = 1.625 0.625 x 2 = 1.25 0.25 x 2 = 0.5 0.5 x 2 = 1.0 0.0 x 2 = 0.0
1 1 1 1 0 1
1.6.3 Conversin de Binario a Octal La conversin de un nmero de binario a octal es relativamente sencilla, puesto que un nmero binario de tres dgitos da origen a un dgito octal en forma directa bajo la siguiente tabla:
Nmero binario de tres dgitos 000 001 010 011 100 101 110 111 Nmero octal 0 1 2 3 4 5 6 7
Para realizar la conversin de un nmero binario ms grande (arriba de tres dgitos) se divide el nmero de derecha a izquierda en bloques de 3 dgitos. Por ejemplo, para el nmero 1110111100101b su equivalente octal es: 001 110 111 100 101 1 6 7 4 5 Nmero binario Nmero octal
Sistemas de numeracin
octal es: 001 111 011 . 101 100 1 7 3 5 4 entonces, 1111011.1011b = 173.54q
1.6.4 Conversin de Octal a Binario Para convertir un nmero en el sistema octal al sistema binario, es tambin sencillo, basta convertir dgito a dgito octal a binario, y el nmero quedar entonces completamente convertido, as para el nmero 347q se tiene su equivalente binario que es: 347q = 011 100 111 b 3 4 7 y para el nmero 326.42q su nmero binario es: 011 010 111 . 100 010 3 2 6 4 2
1.6.5 Conversin de Binario a Hexadecimal Para convertir un nmero de binario a hexadecimal, se procede de igual manera que en la conversin de binario a octal, pero en este caso la divisin del nmero binario, se hace en bloques de 4 dgitos y se realiza una conversin directa de acuerdo a la siguiente tabla:
Binario 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Hexadecimal 0 1 2 3 4 5 6 7 8 9 A B C D E F
7 de 29
Sistemas de numeracin
Por ejemplo, para convertir el nmero binario 11110111001011 a hexadecimal se tiene: 0011 1101 1100 1011 3 D C B entonces, 11110111001011b = 3DCBh. Para el nmero 1101011.11011 su conversin a hexadecimal es: 0110 1011 . 1101 1000 6 B D 8 entonces, 1101011.11011b = 6B.D8h.
1.6.6 Conversin de Hexadecimal a Binario Para convertir un nmero de hexadecimal a binario se convierte dgito a dgito del nmero hexadecimal a binario, por ejemplo, para convertir el nmero 3F4Eh a binario, se tiene: 3 F 4 E 0011 1111 0100 1110 entonces, 3F4Eh = 11111101001110b, y para el nmero F3.2Ch su equivalente binario es: F 3 . 2 C 1111 0011 . 0010 1100 entonces, F3.2Ch = 11110011.001011b.
1.6.7 Conversin de Octal a Decimal Para la conversin de un nmero en una base octal a decimal se usa el mtodo de notacin posicional, en este caso para la conversin de octal a decimal el valor de la base b es 8, por ejemplo, para convertir el nmero 3756q a decimal se tiene: 3756q = 6*8 + 5*8 + 7*8 + 3*8 = 6 + 40 + 448 + 1536 = 2030d Para el nmero 43.25q se tiene: 43.25q = 3*8 + 4*8 + 2*8 + 5*8 = 3 + 32 + 0.25 + 0.78125 = 35.328125d.
0 1 -1 -2 0 1 2 3
1.6.8 Conversin de hexadecimal a decimal Para la conversin de hexadecimal a decimal se usa el mismo mtodo que para la conversin de octal a decimal, o sea, la notacin posicional.
Departamento de sistemas y computacin 8 de 29
Sistemas de numeracin
Por ejemplo, para el nmero 3EFh se tiene: 3EF = F*16 + E*16 + 3*16 = 15 + 14*16 + 3*256 = 15 + 224 + 768 = 1007d. Para el nmero 2AE.Fh se tiene: 2AE.F = E*16 + A*16 + 2*16 + F*16 = 14 + 160 + 512 + 0.9375 = 686.9375d
0 1 2 -1 0 1 2
1.6.9 Conversin de Decimal a Hexadecimal Para este tipo de conversin se usa el mtodo de divisin/multiplicacin sucesiva, por ejemplo para el nmero 3845d se tiene: residuo hexadecimal 3845 16 5 5 240 16 0 0 15 16 15 F entonces, 3845d = F05h y, para el nmero 346.0625 se tiene: parte entera residuo 346 16 10 A 21 16 5 5 1 16 1 1 entonces 346.0625d = 15A.1h parte fraccionaria 0.0625 x 16 = 1.0
1.6.10 Conversin de Octal a Hexadecimal y viceversa Este tipo de conversin no es muy usada, pero algunas veces se necesita. Para realizar la conversin de octal a hexadecimal o viceversa, es necesario convertir primero el nmero a otra base (decimal o binaria) y posteriormente realizar la conversin del nmero en la otra base a hexadecimal u octal segn se necesite. Por simplicidad se realiza la conversin usando la numeracin binaria como apoyo en vez de la numeracin decimal, por ejemplo para convertir el nmero 13472q a hexadecimal se tiene: 1 3 4 7 2 001011100111010 1 7 3 A nmero octal nmero binario nmero hexadecimal
entonces 13472q = 173Ah y para el nmero 3425.76q se tiene: 3 4 2 5 . 7 6 011100010101 11111000 7 1 5 F 8 entonces, 3425.76q = 715.f8h
Departamento de sistemas y computacin 9 de 29
Sistemas de numeracin
Para la conversin de hexadecimal a octal se tiene: hexadecimal binario octal 3 F 4 . E A 001111110100 . 111010100 1 7 6 4 .7 2 4
1.6 11 Conversiones entre nmeros de diferentes bases En resumen, para realizar la conversin de bases se debe considerar lo siguiente: 1. Si la conversin puede hacerse directamente hacerla y terminar. 2. De lo contrario, convertir el nmero original a una base que facilite la conversin y realizarla directamente. Por ejemplo en (1010.10)2 ----->Base 8 La conversin se puede hacer directamente ya que 3 dgitos de base binaria equivalen a un dgito de base 8. 001 | 010 |.100 1 2 . 4 ----> (1010.10)2 -----> (12.4)8 mientras que para (37.56)8 ----> Base 16 La conversin NO se puede hacer directamente, pero es fcil realizar: (base 8)---->(base 2)---->(base 16) 3 7 . 5 6 (37.56)8---->(011 111.101 110)2 011 111 . 101 110 01 | 1111 |. 1011 | 1000 1 F B 8 (37.56)8 ----> (11111.10111)2---->(1F.B8)16 En general, es posible realizar conversiones muy sencillas si las bases pueden ser k j expresadas en la forma a y a . Si k y j son mltiplos se tiene una equivalencia de dgitos, i sino hay que realizar la conversin a una base que tenga una expresin a de forma que k y j sean visibles entre s. Por ejemplo: ( )3 -----> ( )9 es muy sencillo ya que: base 3 = 3 y base 9 = 3 , en este caso hay una equivalencia de 2 dgitos a uno.
Departamento de sistemas y computacin 10 de 29
1 2
Sistemas de numeracin
Si no es posible realizar la conversin directa, debido a que NO se pueden encontrar k j expresiones a y a para las bases, siempre es posible realizar lo siguiente: ( )x ----> ( )10 ----> ( )y
Procedimiento para conversin de una base x a base 10. Se puede utilizar el mtodo de la divisin sinttica. Evaluando la parte entera para x. Ejemplo: (517.31)9 ----> base 10 5 5 1 45 46 7 9 414 421
aunque siempre es posible realizarlo por: 7*9 + 1*9 + 5*9 = 7 + 9 + 405 = 421 La parte fraccionaria se evala para x pero escribiendo al revs la parte fraccionaria, ms un cero al final. Ejemplo: (537.31)9 ----> base 10 1 1 Tambin se puede realizar por: 3*9 + 1*9 = 0.345679 28/81 = 0.345679 (517.31)9 =====> (421.345679)10
Departamento de sistemas y computacin 11 de 29
-1 -2 -1 0 1 2
3 1/9 28/9
0 9 28/81 28/81
-1
Sistemas de numeracin
Procedimiento para conversin de base 10 a una base x Se realiza por el mtodo de divisiones sucesivas para la parte entera y de multiplicaciones sucesivas para la parte fraccionaria: Ejemplo parte entera (1532)10 -----> base 6: 255 6 1532 33 32 2 42 6 255 15 3 7 6 42 0 1 6 7 1 0 6 1 1
(1532)10 ----> (11032)6 Es decir se divide el nmero decimal entre la base x hasta que el cociente sea menor que la base y el nmero ser formado con todos los residuos del ltimo al primero. Ejemplo parte fraccionaria (0.875)10 ----> base 2: 0.875 x2 1.750 0.750 x2 1.500 (0.875)10 ----> (0.111)2 Es decir se realizan multiplicaciones sucesivas de las partes fraccionarias del resultado hasta que la fraccin sea cero o hasta la precisin desea. El nmero ser compuesto de las partes enteras de las multiplicaciones desde la primera hasta la ltima. 0.50 x2 1.00
Operaciones aritmticas en diferentes bases El procedimiento ms fcil de recordar es realizar primero la conversin a decimal, despus realizar las operaciones y, finalmente, convertir de decimal a base original. (314)6 + (215)6 = ? 3 3 1 18 19 4 114 118 6 118 + (201)10 2 2 83 1 12 13 5 78 83 6
12 de 29
Sistemas de numeracin
33 6 201 21 3
0 6 5 5
aunque siempre es posible realizar las operaciones en forma directa utilizando los principios del aritmtica modular: 3 1 4 2 1 5 5 3 3 (5+4) MOD 6 = 3 para la primera columna (5+4) DIV 6 = 1
Conversin de nmeros de base ab a base b 1. Expresar cada dgito de ab como su equivalente a base b lo cual se puede hacer usando divisin sinttica manejando dgitos de ab como independientes. Por ejemplo (5 1 3 4)6 ------> base 3; a = 3, b = 2: 5 5 1 10 1 10 1 3 20 2 3 20 2 3 4 40 4 6 4 40 4 6 4 2
Resultado: (5 1 3 4)6 -----> (40 4 6 4)3 2. Expresar cada dgito del resultado anterior como su equivalente en base a. (40 4 6 4) ------> (1111 11 20 11) 3. Sumar dgitos anteriores considerando valores posicionales expresando el resultado en base b. 1111 11 20 11 1120011 (5 1 3 4)6 ----> (1 1 2 0 0 1 1)3
Departamento de sistemas y computacin 13 de 29
Sistemas de numeracin
1 3 1137 1138
de donde se comprueba la validez del algoritmo. 4. Los pasos 2 y 3 pueden quedar comprendidos en lo siguiente: El primer dgito (valor posicional menor) ser el residuo del primer dgito al dividirlo entre la base b, el segundo dgito del resultado ser el residuo del segundo dgito ms el cociente del anterior resultado y as sucesivamente. Para nuestro ejemplo: primer dgito = 4 MOD 3 = 1 segundo dgito = ( 6+( 4 DIV 3)) MOD 3 = ( 7 MOD 3) = 1 tercer dgito = ( 4+( 7 DIV 3)) MOD 3 = ( 6 MOD 3) = 0 cuarto dgito = (40+( 6 DIV 3)) MOD 3 = (42 MOD 3) = 0 quinto dgito = ( 0+(42 DIV 3)) MOD 3 = (14 MOD 3) = 2 sexto dgito = ( 0+(14 DIV 3)) MOD 3 = ( 4 MOD 3) = 1 sptimo dgito = (4 DIV 3) MOD 3 = ( 1 MOD 3) = 1 Resultado: (1 1 2 0 0 1 1)3 Comprobndose lo expuesto anteriormente. Realmente la conversin de nmeros entre la base C y la base C en un caso especial k j k-j del mtodo anterior con ab = C y b = C con: a = C Ejemplo (A O 7 6)16 -----> base 8; 10 10 a = 8, b = 2: 0 20 0 20 0 7 6 40 0 7 80 0 14 6 40 0 7 80 0 14 6 14 6)8 6) 2
k j
6 16 41072 41078
14 de 29
Sistemas de numeracin
1 1
2 8 10
0 80 80
1 640 641
6 5128 5134
6 8 41072 41078
Cdigo ASCII.- Este cdigo se usa para transmisin y manejo de informacin alfanumrica en computadoras (ASCII = Cdigo Americano Estndar para Intercambio de Informacin) el cdigo ASCII incluye nmeros del 0 al 9, letras maysculas y minsculas, signos de puntuacin y cdigos de control. El cdigo ASCII usa 7 bits, el octavo bit normalmente puede ser 0 o 1, aunque muchas veces da acceso a caracteres grficos.
Departamento de sistemas y computacin 15 de 29
Sistemas de numeracin
2 OPERACIONES ARITMETICAS
2.1 Representacin de Nmeros
a) Nmeros sin signo.- Esta forma de representar nmeros se usa nicamente para representar nmeros positivos y pueden realizarse operaciones aritmticas como la suma, el producto y la divisin. Cabe mencionar que los nmeros sin signo es la forma ms simple de representarlos. b) Nmeros con magnitud y signo.- Esta forma de representar un nmero se puede usar para nmeros positivos y negativos. El bit de signo es el bit de ms alto orden y es 0 si el nmero es positivo y 1 si el nmero es negativo. El resto del nmero determina la magnitud. Ejemplo: +0 = 00000000; +2 = 00000010; -4 = 10000100; -7 = 10000111. Esta forma de representar los nmeros contiene duplicacin del cero (+0,-0) y tiene un alcance desde -127d (11111111b) hasta +127d (01111111). c) Nmeros en complemento a uno.- La representacin de un nmero en complemento a uno se puede usar para representar nmeros positivos y negativos y, adems, para simplificar la resta de operaciones aritmticas usando lgica digital o microprocesadores. La forma de obtener el nmero en complemento a uno se realiza de la siguiente forma: Si el nmero es positivo, entonces el primer bit de izquierda a derecha (bit de ms alto orden) ser cero e indicar la magnitud. Si el nmero es negativo, entonces el nmero se complementa a uno, completando en forma booleana bit por bit, y el nmero que se genera es el complemento a uno del nmero dado. nmero magnitud y signo complemento a uno -4 1100 1011 -3 1011 1100 -2 1010 1101 -1 1001 1110 0 0000 o 1000 0000 o 0111 1 0001 0001 2 0010 0010 3 0011 0011 4 0100 0100 e) Representacin en complemento a dos.- Esta forma de representacin es la ms usada para representar nmeros. Con este mtodo se pueden representar nmeros positivos y negativos y se usa para realizar restas algebraicas entre nmeros usando elementos digitales.
Departamento de sistemas y computacin 16 de 29
Sistemas de numeracin
La forma de obtener el complemento a dos de un nmero es la siguiente: Si el nmero es positivo, entonces el bit de ms alto orden es cero y el resto determina la magnitud del nmero. Si el nmero es negativo, entonces debe complementarse a dos, para lo cual se hace lo siguiente: se complementa a uno el nmero y luego se le suma 1, con lo cual se obtiene el complemento a dos nmero complemento a uno complemento a dos -4 1011 1100 -3 1100 1101 -2 1101 1110 -1 1110 1111 0 0000 0000 1 0001 0001 2 0010 0010 3 0011 0011 4 0100 0100 NOTA: Las diferentes representaciones difieren nicamente en los nmeros negativos, esto se hace para simplificar las operaciones con nmeros negativos u operaciones de sustraccin.
Mapa de Karnaugh de Ci + 1
17 de 29
Sistemas de numeracin
A1 B1 S1 C1 A2 S2 B2 A3 S3 B3 A4 S4 B4
S1 C2 S2 C3 S3 C4 S4 C5
Esta operacin es capaz de realizar sumas y restas (sumas con nmeros negativos), primeramente debe realizarse la condicin de signo (bandera de signo) de acuerdo a las siguientes caractersticas: A. Si los signos de ambos nmeros son positivos, entonces debe realizarse la suma de los nmeros. B. Si los dos nmeros tienen signo negativo, entonces debe realizarse la suma de los nmeros y el resultado es negativo. C. Si el nmero mayor es negativo y el menor es positivo, debe realizarse la diferencia del menor al mayor, y el resultado es negativo. D. Si el nmero mayor es positivo y el menor es negativo, debe realizarse la resta del menor al mayor y el resultado es positivo.
18 de 29
Sistemas de numeracin
10011110 nmero negativo (0011110) + 01100110 nmero positivo (1100110) Como el nmero positivo es mayor que el negativo, entonces se debe aplicar el inciso D. Ejemplo 1 -1-1 1100110 - 0011110 1001000
resultado 01001000
11001101 nmero negativo (1001101) + 01000011 nmero positivo (1000011) Como el nmero positivo es menor que el nmero negativo, entonces se aplica el inciso C. Ejemplo 2 -1 1001101 -1000011 0001010
10011101 nmero negativo (0011101) + 11001101 nmero negativo (1001101) Como ambos nmeros son negativos, entonces se debe aplicar el inciso B. Ejemplo 3 0011101 1001101 1101010 resultado 11101010
01101100 nmero positivo (1101100) + 00101111 nmero positivo (0101111) Como ambos nmeros son positivos, entonces se debe aplicar el inciso A. Ejemplo 4 1101100 0101111 10011011
Departamento de sistemas y computacin
19 de 29
Sistemas de numeracin
Como el quinto dgito es cero (bit ms alto) entonces el resultado obtenido es el complemento a diez de la resta y por consiguiente debe obtenerse nuevamente el complemento a diez de 6830 , el cual es 3170 y el resultado es negativo. Aplicando este mtodo al sistema binario se tiene: A. Si los nmeros son positivos, debe realizarse la suma algebraica de ambos nmeros y el resultado es positivo. B. Si ambos nmeros son negativos, stos deben estar en complemento a dos y se debe realizar la suma algebraica de ambos, dando como resultado el complemento a dos de la solucin. C. Si un nmero es positivo y el otro negativo, ste ltimo debe estar en complemento a dos y debe realizarse la suma de ambos. i) ii) Si el bit de cargo generado es 1, entonces el resultado obtenido de la suma es la solucin y con signo positivo. Si el bit de cargo generado es 0, entonces el resultado obtenido es el complemento a dos de la solucin y tiene signo negativo.
Ejemplo 1: 01101111 + 01100100 Como ambos nmeros son positivos, entonces debe aplicarse el inciso A.
Departamento de sistemas y computacin 20 de 29
Sistemas de numeracin
Ejemplo 2: 01101000 - 00110111 Como el segundo nmero es negativo, debe obtenerse el complemento a dos, 2'C(00110111) = 11001000 + 1 = 11001001. Como el nmero negativo es menor que el positivo, entonces debe aplicarse el inciso C-i. 01101000 - 00110111 = 01101000 + 11001001 = 00110001 01101000 +11001001 100110001 Como el bit de ms alto orden es 1, entonces el resto del nmero es la solucin de la resta y con signo positivo.
Ejemplo 3: 00101100 - 01101111 Como el segundo nmero es negativo y mayor que el positivo, entonces se aplica el inciso C-ii. 2'C(01101111) = 10010000 + 1 = 10010001 00101100 - 01101111 = 00101100 + 10010001 = 010111101 00101100 +10010001 010111101 Como el bit de ms alto orden es 0, entonces la solucin se encuentra complementando a dos el resultado obtenido con signo negativo.
2'C(10111101) = 01000010 + 1 = 01000011 entonces 00101100 - 01101111 = - 01000011 Ejercicios: Resuelva las operaciones siguientes Nmeros en magnitud y signo Nmeros en complemento a dos 01010011 + 10110110 01010011 + 00110101 00110000 + 01101011 01101001 - 01101110 10011011 + 11011011 01111000 - 00011100 10011111 + 00111010 - 00111001 - 00011101 11111111 + 00101101 01110111 - 01100111
Departamento de sistemas y computacin 21 de 29
Sistemas de numeracin
Si los nmeros se encuentran en complemento a dos, entonces deben analizarse los siguientes casos: Ambos nmeros son positivos, entonces multiplicar ambos nmeros y el producto ser positivo. Ambos nmeros son negativos en complemento a dos, entonces debe regresar al nmero inicial (complementar a dos los nmeros negativos) y multiplicar ambos nmeros y el resultado es positivo. Si un nmero es negativo y el otro positivo, entonces regresar al nmero inicial (complementar a dos) el nmero negativo, y el resultado es negativo. Si se desea para cumplir con la representacin del nmero puede complementarse el resultado a dos, aunque no es necesario.
22 de 29
Sistemas de numeracin
Analizar el bit de ms alto orden del multiplicador; si es uno, entonces sumar el multiplicando con un acumulador previamente restablecido (en cero); y posteriormente correr el multiplicando un bit a la izquierda. Realizar para el resto de los bits del multiplicador. Si es uno entonces sumar con el acumulador y posteriormente correr un bit a la izquierda. Si es cero entonces nicamente debe correrse el multiplicando a la izquierda un bit.
Ejemplo: Realizar las siguientes multiplicaciones usando el mtodo de sumas y corrimientos: 11010010 X 10011011 Ejemplo 1: 1 Multiplicando = 11010010 = MDO Multiplicador = 10011011 = MDOR Acumulador = 0000000000000000 = A El bit de ms bajo orden = 1 entonces sumar MDO al acumulador A = A + 11010010 = 11010010 y correr el multiplicador un bit a la izquierda MDO = 110100100 MDOR = 10011011 A = 0000000011010010 como el siguiente bit del multiplicador es 1 entonces sumar el multiplicador con el acumulador A = A + MDO = 0000000011010010 + 110100100 A = 0000001001110110 correr el multiplicador un bit a la izquierda MDO = 1101001000 MDOR = 10011011 como el siguiente bit de MDOR es cero entonces nicamente se corre el MDO un bit a la izquierda, y lo dems (A,MDOR) queda igual. MDO = 11010010000 MDOR = 10011011 A = 0000001001110110 el bit siguiente de MDOR = 1 entonces sumar el multiplicador con el acumulador (A = A + MDO) A = 0000001001110110 + 11010010000 A = 0000100100000110
23 de 29
01000011 X 00100101
00011011 X 10011001
Sistemas de numeracin
correr MDO un bit a la izquierda MDO = 110100100000 5 MDOR = 10011011 A = 0000100100000110 el bit siguiente del MDOR = 1 entonces A = A + MDO A = 0000100100000110 + 110100100000 A = 0001001000100110 correr MDO un bit a la izquierda MDO = 1101001000000 MDOR = 10011011 el bit siguiente del MDOR = 0 entonces correr el MDO un bit a la izquierda MDO = 11010010000000 MDOR = 10011011 el bit siguiente del MDOR = 0 entonces correr el MDO un bit a la izquierda MDO = 110100100000000 MDOR = 10011011 el bit siguiente del MDOR = 1 entonces A = A + MDO A = 0001001000100110 + 110100100000000 A = 0111111100100110 Como ste fue el ltimo bit, entonces el acumulador tiene el producto. 11010010 X 10011011 = 111111100100110
Se puede comprobar este resultado si se realiza la transformacin de los nmeros a decimal MDO = 11010010b = D2h = 13*16 + 2 = 210d MDOR = 10011011b = 9Bh = 9*16 + 11 = 155d 210 * 155 = 32550 residuo 32550 2 0 16275 1 8137 1 4068 0 2034 0 1017 1 508 0 254 0 127 1 la solucin del producto
32550d = 111111100100110 que es el mismo nmero obtenido usando el mtodo de sumas y corrimientos.
24 de 29
Sistemas de numeracin
63 31 15 7 3 1 0
1 1 1 1 1 1 0
NOTA: En este producto no se realiz anlisis del bit de signo y se manejaron nmeros sin signo.
Al igual que la multiplicacin por sumas sucesivas, esta operacin resulta muy tardada para realizarse manualmente. Si los nmeros estn dados en magnitud y signo o en complemento a dos, entonces debe manejarse el nmero o los nmeros como se hizo en la multiplicacin por sumas sucesivas. Ejemplo: sea el siguiente nmero de 8 bits sin signo 10110101 dividido entre el siguiente nmero de 4 bits sin signo 1011, entonces la solucin es:
25 de 29
Sistemas de numeracin
Dividendo = DENDO = 10110101 Divisor = DIOR = 1011 Cociente = COC = 0000 10110101 - 1011 10101010 - 1011 10011111 - 1011 10010100 - 1011 10001001 - 1011 01111110 - 1011 01110011 - 1011 01101000 - 1011 01011101 - 1011 01010010 - 1011 01000111 - 1011 00111100 - 1011 00110001 - 1011 00100110 - 1011
RES01 > DIOR RES02 > DIOR RES03 > DIOR RES04 > DIOR RES05 > DIOR RES06 > DIOR RES07 > DIOR RES08 > DIOR RES09 > DIOR RES10 > DIOR RES11 > DIOR RES12 > DIOR RES13 > DIOR
COC = 1 = 0001 COC = 2 = 0010 COC = 3 = 0011 COC = 4 = 0100 COC = 5 = 0101 COC = 6 = 0110 COC = 7 = 0111 COC = 8 = 1000 COC = 9 = 1001 COC = 10 = 1010 COC = 11 = 1011 COC = 12 = 1100 COC = 13 = 1101
26 de 29
Sistemas de numeracin
00011011 RES14 > DIOR - 1011 00010000 RES15 > DIOR - 1011 00000101 RES16 < DIOR
Entonces 10110101 1011 = 10000 con un residuo de 101. Puesto que el cociente debe ser de 4 bits se tiene cargo = 1, o sea, la solucin es 0000 con cargo de 1 y residuo = 0101.
Sistemas de numeracin
12345678910-
Poner el cociente a cero COC <= 0 Correr el DISOR a la izquierda el nmero de veces necesario, hasta que sea ms cercano posible con el DENDO. Restar el divisor (DISOR) al dividendo (DENDO) generando el residuo (RES). Sumar 1 al cociente (COC). Correr el DISOR a la derecha 1 bit. Asignar el residuo (RES) al dividendo DENDO <= RES. Si el DISOR es mayor que el DENDO, entonces correr el cociente un bit a izquierda. Si el DISOR es menor que el DENDO, entonces correr el COC un bit a izquierda un bit y sumarle 1, RES = DENDO - DISOR. Si el nmero de veces que se corri el DISOR a la derecha es menor que nmero de veces que se corri en el inciso 2, entonces continu con 5. COC tiene el valor del cociente y RES tiene el valor del residuo.
lo
la la el
Ejemplo: 1100110111001110 10011100 1.- COC = 0 2.- DISOR = 1001110000000000 (se corre 8 bits) 3.1100110111001110 -1001110000000000 0011000111001110 => RES 4.- COC = 1 5.- DISOR = 100111000000000 (se corre 1 bit ->) 6.- DENDO = RES = 11000111001110 7.- Como DISOR es mayor que el DENDO, entonces COC = 10 9.- Nmero de veces realizado el ciclo (1) es menor que 8 5.- DISOR = 10011100000000 (se corre 1 bit ->) 6.- DENDO = RES = 11000111001110 8.- Como DISOR es menor que DENDO, entonces COC = 101 y 11000111001110 -10011100000000 RES = 00101011001110 9.- Nmero de veces realizado el ciclo (2) es menor que 8 5.- DISOR = 1001110000000 (se corre 1 bit ->) 6.- DENDO = RES = 101011001110 7.- Como DISOR es mayor que DENDO, entonces COC = 1010 9.- Nmero de veces realizado el ciclo (3) es menor que 8 5.- DISOR = 100111000000 (se corre 1 bit ->) 6.- DENDO = RES = 101011001110 8.- Como DISOR es menor que DENDO, entonces COC = 10101 y
28 de 29
Sistemas de numeracin
101011001110 -100111000000 RES = 000100001110 9.- Nmero de veces realizado el ciclo (4) es menor que 8 5.- DISOR = 10011100000 (se corre 1 bit ->) 6.- DENDO = RES = 100001110 7.- Como DISOR es mayor que DENDO, entonces COC = 101010 9.- Nmero de veces realizado el ciclo (5) es menor que 8 5.- DISOR = 1001110000 (se corre 1 bit ->) 6.- DENDO = RES = 100001110 7.- Como DISOR es mayor que DENDO, entonces COC = 1010100 9.- Nmero de veces realizado el ciclo (6) es menor que 8 5.- DISOR = 100111000 (se corre 1 bit ->) 6.- DENDO = RES = 100001110 7.- Como DISOR es mayor que DENDO, entonces COC = 10101000 8.- Nmero de veces realizado el ciclo (7) es menor que 8 5.- DISOR = 10011100 (se corre 1 bit ->) 6.- DENDO = RES = 1000011110 8.- Como DISOR en menor que DENDO, entonces COC = 101010001 y 100001110 - 10011100 001110010 9.- Nmero de veces realizado el ciclo (8) es igual a 8 10.- COCIENTE = 101010001 RESIDUO = 1110010
29 de 29