Download Presentación de PowerPoint
Document related concepts
Transcript
ENSAMBLADOR Sistemas de Numeración Un sistema numérico es un conjunto de reglas y símbolos que nos permiten escribir números. Números: reales negativos y positivos, y enteros negativos y positivos Representación de números enteros no negativos Sea R (base o radio) un número mayor o igual que 2, entonces pueden representarse números enteros como una cadena de dígitos escogidos entre 0,1,2,…..,R-1. Donde la cadena es la representación en base R del entero. La base de un sistema numérico es el número de dígitos que pueden aparecer en cada posición en el sistema numérico. Ejemplo: R=3 digitos={0,1,2} Base 10---0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18 Base 3 --- 0,1,2,10,11,12,20,21,22,100,101,102,110,111,112,120,121,122,200 MC Hilda Castillo Z. BUAP ENSAMBLADOR Sistemas de Numeración Conversión entre bases Sea el número akak-1….a1, un entero en base R. Para convertir este número de base R a base Q utilizamos la conversión: akRk-1+ak-1Rk-2+…+a1R0 (Expresión uno) Donde R es la base en la que se encuentra el número (base actual), k es el número de dígitos que conforman el número y Q es la nueva base (se debe trabajar con aritmética en base Q). Ejemplos: 1) Convertir (100110)2 ( R=2 k=6 Q=10 )10 a6=1, a5=0, a4=0, a3=1, a2=1, a1=0 1*26-1+0*26-2+0*26-3+1*26-4+1*26-5+0*26-6= 1*25+0*24+0*23+1*22+1*21+0*20= 1*25+1*22+1*21= 32+4+2=38 Finalmente obtenemos que: (100110)2 (38)10 MC Hilda Castillo Z. BUAP ENSAMBLADOR Sistemas de Numeración 2) Convertir (4302)5 ( )3 R=5 Q=3 k=4 a4=4, a3=3, a2=0, a1=2 Se debe trabajar con aritmética en base 3, por lo tanto necesitamos las tablas de suma y multiplicación en base 3. + 0 1 2 0 0 1 2 1 1 2 10 2 2 10 11 * 0 1 2 0 0 0 0 1 0 1 2 2 0 2 11 4*53+3*52+0*51+2*50= 11*123+10*122+2*120= 11*11122+10*221+2*1= 200112+2210+2= 210101 12*12 101 12 221 221*12 1212 221 11122 11122*11 11122 11122 200112 221*10 000 221 2210 200112 + 2210 2 210101 Realizando las sumas y multiplicaciones debidas en base 3, obtenemos: (4302)5 (210101)3 MC Hilda Castillo Z. BUAP ENSAMBLADOR Sistemas de Numeración Conversión de números de base X a base 10 (donde X10) Algoritmo 1. (Regla de Horner para la evaluación de polinomios) 1. ik, num 0 2. Mientras i1 hacer Donde R es la base actual, k es el num num*R+ai número de dígitos que componen el número y ai es el i-ésimo dígito del i i-1 número en base X (derecha a izquierda) fin_mientras 3. Fin Ejemplo: Convertir (4302)5 ( )10 I 4 3 2 1 0 num 0 4 23 115 577 R 5 a4 4 a3 a2 a1 k 3 0 2 4 Utilizando el algoritmo 1 obtenemos: (4302)5 (577)10 MC Hilda Castillo Z. BUAP ENSAMBLADOR Sistemas de Numeración Conversión de números de base 10 a base s (donde s10) Algoritmo 2. 1. i1, q0, p 0 2. Repetir Donde x inicialmente es el número a q [x/s] (parte entera) convertir, s es la nueva base y ai es el ip x-q*s (residuo) ésimo dígito del número en base s tomando el orden akak-1…a1 ai p, i i+1, x q hasta q=0 3. Fin Ejemplo: Convertir (577)10 ( )3 x 577 192 64 21 7 2 q 0 192 64 21 7 2 p 0 1 0 1 0 1 ai 1 0 1 0 1 i 1 2 3 4 5 6 0 0 2 2 7 s 3 Obtenemos: (577)10 (210101)3 MC Hilda Castillo Z. BUAP ENSAMBLADOR Sistemas de Numeración Conversión de números de base X a base 10 (donde X10) Números fraccionarios Algoritmo 3. Donde m es el número de dígitos que 1. im, num0 componen el número que queremos 2. Mientras i1hacer convertir, R es la base actual y num es el num (num+bi)/R número en la nueva base. i i-1 fin_mientras 3. Fin Ejemplo: Convertir (.A06)16 ( )10 i 3 2 1 0 num 0 .375 .0234375 .62646484 m 3 R 16 b1 b2 A 0 b3 6 Obtenemos: (.A06)16 (.62646484)10 MC Hilda Castillo Z. BUAP ENSAMBLADOR Sistemas de Numeración Conversión de números de base 10 a base s (donde s10) Números fraccionarios Algoritmo 4. 1. i1 Donde m es el número de dígitos que se 2. Mientras i m hacer desean obtener, x es el número a x x*s convertir inicialmente, s es la nueva y [x] (parte entera) base y bi es el i-ésimo dígito del número en base s tomando el orden b1b2…bm x x-y, bi y, i i+1 fin_mientras 3. Fin Ejemplo: Convertir (.62646484)10 ( )7 i x 1 .62646484 4.38525388 .38525388 2.69677716 .69677716 4.87744012 2 3 Obtenemos: (.62646484)10 (.424)7 4 .87744012 y bi m s 3 7 4 4 2 2 4 4 MC Hilda Castillo Z. BUAP ENSAMBLADOR Sistemas de Numeración Conversión de potencias de 2 Para convertir números de base 2 a base k, donde k puede expresarse como una potencia de 2, es decir, k=2x donde x>1 y es un número entero, se llevan a cabo los siguientes pasos: 1.Se agrupan de x en x los dígitos que se encuentran a la izquierda del punto, comenzando a partir de él y aumentando ceros a la izquierda cuando es necesario. 2.Se agrupan de x en x los dígitos que se encuentran a la derecha del punto comenzando a partir de éste y aumentando ceros a la derecha cuando sea necesario. 3.Se sustituyen los grupos por los dígitos correspondientes en la base k. Ejemplo: (1110010100.011011)2 ( )16 0011 1001 0100 . 0110 1100 3 9 4 6 C Donde 16=24 Resultado: (1110010100.011011)2 (394.6C)16 Se agregaron dos ceros MC Hilda Castillo Z. BUAP ENSAMBLADOR Sistemas de Numeración Conversión de potencias de 2 Para convertir números de base k=2x a base 2, se sustituye cada dígito en base k por los x dígitos binarios correspondientes. Ejemplo: (7402.61)8 ( )2 7 4 0 2 Donde 8=23 . 6 1 Resultado: 111 100 000 010 110 001 (7402.61)8 (111100000010.110001)2 Operaciones aritméticas en diferentes bases Base 2 111 Suma + 0 1 0 0 1 101101 +10110 1000011 1 1 10 Carry o acarreo MC Hilda Castillo Z. BUAP ENSAMBLADOR Sistemas de Numeración Resta 101101 0 1 0 0 1 1 1 0 1 11 - 10110 010111 Borrow (deber uno) 101101*1101 Multiplicación * 0 1 0 0 0 111 1 0 1 1 1 1 1 101101 000000 101101 101101_______ 1001001001 División / 0 1 0 e e 1 0 1 ___1000001 1101 1101010110 -1101 0000010110 - 1101 01001 MC Hilda Castillo Z. BUAP ENSAMBLADOR Tabla de Suma en base 16 (hexadecimal) Sistemas de Numeración + 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 0 1 2 3 4 5 6 7 8 9 A B C D E F 1 1 2 3 4 5 6 7 8 9 A B C D E F 10 2 2 3 4 5 6 7 8 9 A B C D E F 10 11 3 3 4 5 6 7 8 9 A B C D E F 10 11 12 4 4 5 6 7 8 9 A B C D E F 10 11 12 13 5 5 6 7 8 9 A B C D E F 10 11 12 13 14 6 6 7 8 9 A B C D E F 10 11 12 13 14 15 7 7 8 9 A B C D E F 10 11 12 13 14 15 16 8 8 9 A B C D E F 10 11 12 13 14 15 16 17 9 9 A B C D E F 10 11 12 13 14 15 16 17 18 A A B C D E F 10 11 12 13 14 15 16 17 18 19 B B C D E F 10 11 12 13 14 15 16 17 18 19 1A C C D E F 10 11 12 13 14 15 16 17 18 19 1A 1B D D E F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C E E F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D F F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E MC Hilda Castillo Z. BUAP ENSAMBLADOR Tabla de Multiplicar en base 16 (hexadecimal) Sistemas de Numeración * 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 2 3 4 5 6 7 8 9 A B C D E F 2 0 2 4 6 8 A C E 10 12 14 16 18 1A 1C 1E 3 0 3 6 9 C F 12 15 18 1B 1E 21 24 27 2A 2D 4 0 4 8 C 10 14 18 1C 20 24 28 2C 30 34 38 3C 5 0 5 A F 14 19 1E 23 28 2D 32 37 3C 41 46 4B 6 0 6 C 12 18 1E 24 2A 30 36 3C 42 48 4E 54 5A 7 0 7 E 15 1C 23 2A 31 38 3F 46 4D 54 5B 62 69 8 0 8 10 18 20 28 30 38 40 48 50 58 60 68 70 78 9 0 9 12 1B 24 2D 36 3F 48 51 5A 63 6C 75 7E 87 A 0 A 14 1E 28 32 3C 46 50 5A 64 6E 78 82 8C 96 B 0 B 16 21 2C 37 42 4D 58 63 6E 79 84 8F 9A A5 C 0 C 18 24 30 3C 48 54 60 6C 78 84 90 9C A8 B4 D 0 D 1A 27 34 41 4E 5B 68 75 82 8F 9C A9 B6 C3 E 0 E 1C 2A 38 46 54 62 70 7E 8C 9A A8 B6 C4 D2 F 0 F 1E 2D 3C 4B 5A 69 78 87 96 A5 B4 C3 D2 E1 MC Hilda Castillo Z. BUAP ENSAMBLADOR Sistemas de Numeración Aritmética con signo Sea R la base y n el número de casillas o posiciones, entonces Rn es el total de números sin signo que se pueden representar en base R. Por ejemplo. Con R=2 n=3 el total de números que pueden ser representados en base 2 utilizando 3 casillas son 8 y el rango es {0,7}, los números son {000, 001, 010, 011, 100, 101, 110, 111}. { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 } Forma general: rango = { 0, Rn-1} Para números con signo, es necesario utilizar una casilla (la primera) para indicar si el número es negativo o positivo. Para el ejemplo anterior, el total de números con signo que podrían representarse serían 8, 4 positivos y 4 negativos, ya que la primera casilla indica el signo del número, si contiene un 0 es positivo y si contiene un 1 es negativo. Entonces el rango es {-3,3} y los números son {011,010,001,000,100,101,110,111}. { +3 , +2 , +1 ,+0 , -0 , -1 , -2 , -3 } (Signo y magnitud) En general el rango para cualquier base utilizando números con signo es {-(Rn-1-1),(Rn-11)} MC Hilda Castillo Z. BUAP ENSAMBLADOR Sistemas de Numeración Complemento El complemento es una forma de representar números negativos. Si la base es 2, existen dos clases de complementos: complemento a 1 y complemento a 2. Complemento a 1. Se obtiene cambiando 1’s por 0’s y 0’s por 1’s. Ejemplo: Sea el número 00111100, su complemento a 1 es: 11000011. Complemento a 2. Se aplica complemento a 1 al número y luego se suma 1 al resultado. Ejemplo: Sea el número 0110110 aplicando complemento a 1 obtenemos: 1001001, después se le suma 1, obteniéndose 1001010 Algoritmo de suma utilizando la representación de números negativos mediante signo y magnitud. 1.Sean anan-1…a0 y bnbn-1…b0 2 números binarios con signo y magnitud. 2.Tienen signos iguales ? (an=bn) Si: sumar magnitudes quedando el resultado en cn-1cn-2…c0 , cn bn an No: Comparamos magnitudes y dejamos en cn el signo del mayor. Restamos a la magnitud mayor la menor y el resultado queda en cn-1cn-2…c0 MC Hilda Castillo Z. BUAP ENSAMBLADOR Sistemas de Numeración 3. La magnitud de cn-1cn-2…c0 excede el rango ? Si: Indicar error (overflow – sobreflujo) No: El resultado esta en cncn-1…c0 Ejemplo: Obtener el resultado de las siguientes sumas binarias a 4 dígitos 1) 5+(-3)=0101+1011 Los signos son diferentes, y la magnitud del primer número es > que la del segundo, así que restamos 011 de 101 y el signo del resultado será positivo =0010 Su equivalente decimal es 2 2) (-4)+(-6)=1100+1110 Los signos son iguales, así que se suman magnitudes +100 1110 Error ! Existe overflow 1010 Overflow Algoritmo de suma algebraica en complemento a 1 1. Tomar el complemento a 1 de los números negativos 2. Sumar los operandos Nota: El Overflow se genera cuando ya 3. Existe carry? Si: sumar 1 al resultado no hay lugar para un dígito más. 4. Existe overflow? Si: indicar error En base binaria corresponde a un cambio de signo No: Escribir el resultado MC Hilda Castillo Z. BUAP ENSAMBLADOR Sistemas de Numeración Ejemplo: Utilizar 4 dígitos (-4) + (-3)= (0100)c1+(0011)c1= 1011+1100= 1 0111 Existe carry =0111+1=1000 No existe overflow Algoritmo de suma algebraica en complemento a 2 1. Tomar el complemento a 2 de los números negativos 2. Sumar los operandos 3. Existe overflow? Si: mensaje de error No: Se toman las primeras n posiciones de derecha a izquierda como resultado ignorando el carry si es que lo hay. Ejemplo: (4 dígitos) 7+(-5)= 0111+(0101)c2= 0111+1011= 1 0010 Existe carry, así que el resultado es 0010 MC Hilda Castillo Z. BUAP ENSAMBLADOR Conceptos básicos Operaciones Lógicas Son aquellas que dan como resultado verdadero o falso. Donde V es equivalente a 1 y F es equivalente a 0. Para trabajar con este tipo de operaciones se utilizan tablas de verdad. Las operaciones lógicas básicas son: 1. Negación (not). Consiste en obtener el complemento a 1 del operando 2. Conjunción (and). La expresión es verdadera solo si todos sus operandos son verdaderos. 3. Disyunción (or). La expresión es verdadera si al menos uno de sus operandos es verdadero. p q p and q p q p or q p ~p v v v v v v v f v f f v f v f v f v f f v v f f f f f f Negación Conjunción Disyunción MC Hilda Castillo Z. BUAP ENSAMBLADOR MC Hilda Castillo Z. BUAP ENSAMBLADOR MC Hilda Castillo Z. BUAP