CAPITULO Nº1 SISTEMAS NUMÉRICOS 1. Introducción. La necesidad del hombre de representar cantidades lo ha llevado a inventar símbolos que las representen. Se entiende por número a una expresión formada por un símbolo o una secuencia de símbolos que representan una cantidad. Se entiende por sistema numérico a los símbolos y al conjunto de reglas que se aplican sobre ellos para realizar la representación de una cantidad. El sistema numérico más simple que se puede pensar es el que asocia la cantidad unitaria con un símbolo. La regla de generación de otras cantidades es un símbolo por elemento a contar. El sistema anterior tiene evidentes problemas cuando se desea representar cantidades grandes. Por ello, se comenzó a utilizarse un conjunto finito de símbolos que equivalen a una cantidad determinada, y a través de la combinación de ellos, siguiendo una regla específica, se representan las otras cantidades. Los egipcios utilizaban para representar cantidades un sistema similar al decimal, donde asignaban un símbolo gráfico a las potencias de 10 desde el 1 al 1.000.000. Los siete símbolos empleados eran los siguientes: 1 10 100 1.000 10.000 100.000 1.000.000 Una característica del sistema egipcio de numeración es ser de base 10 y además ser aditivo. De esta forma, el número 42 se escribía usando cuatro diez y dos unos. El anterior es el método más básico, que resulta cómodo para expresar cantidades pequeñas. En el caso de cantidades grandes, los símbolos iguales se juntaban de la siguiente forma: Uno de los sistemas numéricos más conocidos en occidente es el sistema romano, en el cual existen ciertas cantidades que se representan por símbolos preestablecidos, a saber: Decimal Romano 1 I 5 V 10 X 50 L 100 C 500 D 1000 M Las restantes cantidades se forman mediante una combinación de los anteriores siguiendo las siguientes reglas: • Si una letra va seguida de otra de igual o menor valor se suman sus valores: II = 1 + 1 = 2 III = 1 + 1 + 1 VIII = 5 + 1 + 1 + 1 = 8 XVI = 10 + 5 + 1 = 16 LXXVII = 50 + 10 + 10 + 5 + 1 +1 = 77 • Las letras V, L y D no se repiten. • Las letras I, X , C y M se repiten máximo hasta tres veces seguidas. • Si una letra va precedida inmediatamente de otra de menor valor, se le esta ese valor: IX = 10 - 1 = 9 XL = 50 –10 = 40 CD = 1000-100 = 900 • Las letras V, L y D no se anteponen a otra de mayor valor. La letra I solo debe anteponerse a V y X. La letra X solo se antepone a L y C. • Si una letra está colocada después de una de mayor valor y antes de otra también de mayor valor que ella, se resta de esta última. MXC = 1000 + (100-10) Una característica importante de este sistema es que los símbolos o dígitos tienen un valor fijo, independiente de la posición que tengan en el número. 2. Sistemas con notación posicional. Al contrario del sistema griego y romano, en que el dígito o símbolo siempre tiene el mismo valor, independiente de la posición que ocupe en el número, en los sistemas con notación posicional la ubicación si tiene relevancia. Es decir, el símbolo adquiere un valor distinto dependiendo de la posición en que este se encuentre. En estos sistemas, el número se construye mediante una sumatoria de los dígitos ponderados por una potencia de la base. Nb = an-1*bn-1+ an-2*bn-2+ ... + a0*b0+a-1*b-1+ a-2*b-2+ ... + a-m*b-m Nb = n -1 ∑a k = -m k * bk Donde: Nb b ai n m : Número en sistema numérico de base b. : Base del sistema numérico. : Coeficiente de la potencia de la base (0 ≤ ai ≤ b –1) : Número de dígitos enteros. : Número de dígitos decimales Ejemplos : 3485610 es: 3 *104 + 4 * 103 + 8 *102 + 5 * 101 + 6 *100 34856,2410 es: 3 *104 + 4 *103 + 8 * 102 + 5 * 101 + 6 *100 + 2 * 10 –1 + 4 *10 -2 La cifra más significativa o dígito más significativo (MSD) es el que tiene la ponderación más alta (MSD) y se encuentra más a la izquierda. El dígito menos significativo (LSD) es la que tiene es la tiene la ponderación más baja y se encuentra más a la derecha. Ejemplo de distintos sistemas de notación posicional Base 10 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 Base 2 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000 10001 10010 10011 10100 10101 10110 10111 11000 11001 11010 11011 Base 3 0 1 2 10 11 12 20 21 22 100 101 102 110 111 112 120 121 122 200 201 202 210 211 212 220 221 222 1000 Base 4 0 1 2 3 10 11 12 13 20 21 22 23 30 31 32 33 100 101 102 103 110 111 112 113 120 121 122 123 Base 8 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 30 31 32 33 Base 16 0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12 13 14 15 16 17 18 19 1A 1B Base 17 0 1 2 3 4 5 6 7 8 9 A B C D E F G 10 11 12 12 14 15 16 17 18 19 1A Observaciones • • • • • Un sistema en base b necesita una cantidad de b símbolos básicos diferentes. Los símbolos de un sistema de base b se encuentran entre 0,1, ... , b-1. La base de un sistema siempre se representa con 10 Las potencias de la base son potencias de 10, es decir: 10, 100, 1000, etc. En sistemas de base mayor a 10 se utilizan como símbolos las letras A, B, C, ... ,Z. 3. Transformaciones entre sistemas. 3.1 Conversión de base X a base 10. Método evaluación del polinomio. Para convertir un número de base cualquiera a base 10 se evalúa el polinomio que genera el número, realizando las operaciones en base 10. Si el sistema tiene base mayor a 10, previo a la evaluación del polinomio se convierten los símbolos en su equivalente a base 10. • Ejemplos: 334 = 3 * 41+3 * 40 = 1510 1B17 = 1 * 171 + B * 170 = 1 * 171 + 11 * 170 = 2810 Método de los productos sucesivos. Este método se deriva de una forma distinta de evaluar el polinomio y es aplicable sólo a números enteros. n -1 Nb = ∑ a i * bi = a n -1b n -1 + a n - 2 b n - 2 + a n - 3b n - 3 + ... + a 2 b 2 + a1b1 + a 0 b0 i =0 = (a n -1b n - 2 + a n - 2 b n - 3 + a n - 3b n - 4 + ... + a 2 b + a1 )b + a 0 = ((a n -1b n - 3 + a n - 2 b n - 4 + a n - 3b n -5 + ... + a 2 )b + a1 )b + a 0 = ((...((( a n -1b + a n - 2 )b + a n - 3 )b + a n - 4 )b + ... + a 2 )b + a1 )b + a 0 • Ejemplo: Transformar 2103 a base 10 2*3 + 1 = 7 7*3 + 0 = 21 2103 = 2110 3.2 Conversión de base 10 a base X. Método para números enteros: Divisiones sucesivas. 1. 2. 3. 4. Se realizan divisiones enteras sucesivas en las cuales el divisor es la base. Primer dividendo es el número en base 10. Siguientes dividendos son los cuocientes de las divisiones enteras. Los dígitos del número en base X están formados por los restos de las divisiones enteras. 5. Dígito menos significativo del número en base X corresponde al primer resto. 6. Dígito más significativo corresponde al último cuociente. 7. Termina la división hasta que el cuociente sea menor que la base. • Algoritmo 1: 2: 3: 4: . . i: N10 : base = cuociente(1), resto(1) cuociente(1): base = cuociente(2), resto(2) cuociente(3): base = cuociente(3), resto(3) cuociente(i) : base = cuociente(i), resto(i) Condición de Termino del ciclo: cuociente(i) < base Número en base X: cuociente(i) resto(i) resto(i-1) ... resto(2) resto(1) • Ejemplo: 2610 a base 2 26 : 2 = 13 , 0 13 : 2 = 6 , 1 6 :2=3 ,0 3 :2=1 ,1 2610 = 110102 • Ejemplo: 4710 a base 5 47 : 5 = 9, 2 9 : 5 = 1, 4 4710 = 1425 Método para números fraccionarios. Para convertir un número fraccionario de base 10 a base X se debe utilizar el siguiente método. • • • • Se multiplica el número fraccionario decimal por la base X. La parte entera del número resultante corresponde a la primera cifra decimal del número en la base X. Se realizan sucesivas multiplicaciones por la base X considerando las partes decimales de las multiplicaciones. Los enteros de los productos obtenidos corresponden a los decimales del número en base X. Ejemplo: 0,47610 a base 3 0,476 * 3 = 1,428 0,428 * 3 = 1,284 0,284 * 3 = 0,852 0,852 * 3 = 2,556 0,556 * 3 = 1,668 0,668 * 3 = 2,004 0,004 * 3 = 0,012 a-1 = 1 a-2 = 1 a-3 = 0 a-4 = 2 a-5 = 1 a-6 = 2 a-7 = 0 0,1 0,11 0,110 0,1102 0,11021 0,110212 0,1102120 Respecto del número de decimales que debe tener el número en la nueva base se debe considerar la siguiente expresión: 10-nd10 = b-ndx donde nd10 : Número de decimales del número en base 10. b : Nueva base del número. ndx : Número de decimales del número en base b. 4. Algebra en distintos sistemas. 4.1 Algebra en sistema binario. a) Suma binaria. La suma se realiza tomando consideración la siguiente tabla: + 0 1 0 0 1 1 1 10 Ejemplo: 1 1 1100100 1 +1 0 1 0 1 0 1 0 10111001 1 b) Resta binaria. 0 1 0 R 0 1 1 P 0 0 R 1 0 P 1 0 R: Resultado. P: Préstamo. Ejemplo 0 10 0 10 1 0 1 1 1 0 0 1 1 - 0 1 0 1 0 1 0 1 0 0 1 1 0 0 1 0 0 1 c) Multiplicación binaria. Se realiza de la misma forma que la multiplicación decimal pero considerando la siguiente tabla de multiplicar binaria. * 0 1 • 0 0 0 Ejemplo de multiplicación decimal 2 4 0 0 + 2 1 5 2 1 9 • 1 0 1 1 3 0 3 5*1 0 2 0 0 => 215 * (100 + 00 + 2) Ejemplo de multiplicación binaria 1 1 0 0 + 1 0 1 1 1 1 0 0 0 1 0 1 1 0 1 0 1 1 0 1 1*1 0 1 1 1 d) División Binaria. Se realiza de la misma forma que la división decimal pero tomando en cuenta las tablas de multiplicar en binario. • Ejemplo de división decimal 3 - 3 0 - • 8` 1` 0 8 1 7 5 0 6 - 6 0 0` : 1 5 = 2 5 4 0 0 0 Ejemplo de división en binario Dec Bin - 0 0 1 1 1 1 1` 0` 1 0 1 0 1 0 0 1 0 0 0 1 1 0 - 2 10 3 11 4 100 5 101 0` 1` 1` : 1 0 1 = 1 0 1 1 1 0 1 1 0 1 1 0 1 1 0 1 0 1 0 0 6 110 7 111 8 1000 9 1001 10 1010 1.4.2 Algebra en sistema octal. Tabla de números en sistema octal. Dec Oct 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 9 10 11 12 13 14 15 16 17 10 11 12 13 14 15 16 17 20 21 a) Suma en octal. Se realiza de la misma forma que la suma decimal, tomando en cuenta la siguiente tabla de sumas en octal. + 0 1 2 3 4 5 6 7 • 0 0 1 2 3 4 5 6 7 1 1 2 3 4 5 6 7 10 2 2 3 4 5 6 7 10 11 3 3 4 5 6 7 10 11 12 4 4 5 6 7 10 11 12 13 5 5 6 7 10 11 12 13 14 6 6 7 10 11 12 13 14 15 7 7 10 11 12 13 14 15 16 Ejemplo de suma en octal 1 1 1 2 3 4 7 + 3 5 7 7 6 1 4 6 b) Resta en octal. La resta en octal se realiza de la misma forma que la resta decimal, teniendo en cuenta que cuando el minuendo es mayor que el sustraendo se debe pedir un prestamo. • Ejemplo de resta en octal. 5 0 3 6 1 4 6 - 3 5 7 7 2 3 4 7 c) Multiplicación en octal. Para realizar las multiplicaciones en el sistema octal se deben considerar las tablas de multiplicar en octal. * 0 1 2 3 4 5 6 7 • 0 0 0 0 0 0 0 0 0 1 0 1 2 3 4 5 6 7 2 0 2 4 6 10 12 14 16 3 0 3 6 11 14 17 22 25 4 0 4 10 14 20 24 30 34 6 0 6 14 22 30 36 44 52 Ejemplo de multiplicación en sistema octal 2 0 +4 2 4 2 1*2 0 0 0 c) División en octal. Ejemplo de división - 5 0 5 12 17 24 31 36 43 2 4` 3` 2 4 0 0 3 - 2 0 - 1` 5`: 1 2 = 2 0 2 4 1 4 5 5 5 0 0 5 7 0 7 16 25 34 43 52 61 1.4.3 Algebra en sistema Hexadecimal. Tabla de números en sistema hexadecimal Dec Hex 0 0 Dec Hex 16 10 Dec Hex Dec Hex 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 A 11 B 12 C 13 D 14 E 15 F 17 11 18 12 19 13 20 14 21 15 22 16 23 17 24 18 25 19 26 1A 27 1B 28 1C 29 1D 30 1E 31 1F 32 20 33 21 34 22 35 23 36 24 37 25 38 26 39 27 40 28 41 29 42 2A 43 2B 44 2C 45 2D 46 2E 47 2F 48 30 49 31 50 32 51 33 52 34 53 35 54 36 55 37 56 38 57 39 58 3A 59 3B 60 3C 61 3D 62 3E 63 3F 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 a) Suma en sistema hexadecimal. Se debe considerar para efectuar la suma la siguiente tabla: + 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 Ejemplo de suma 1 C A B 2 + A 1 0 F 1 6 B C 1 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 F F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E b) Resta en hexadecimal 0 16 B 11 1 6 B C 1 A 1 0 F 0 C A B 2 b) Multiplicación en Hexadecimal. Para la realización de la multiplicación en hexadecimal es necesario considerar las tablas de multiplicar en el sistema hexadecimal. * 0 1 2 3 4 5 6 0 0 0 0 0 0 0 0 1 0 1 2 3 4 5 6 2 0 2 4 6 8 A C 3 0 3 6 9 C F 12 1 3 2 A +2 1 3 0 1 6 3 9 4 0 4 8 C 10 14 18 5 0 5 A F 14 19 1E 3 3 A 2 5 AC D 1 C 2*15 CA 2 E A 6 0 6 C 12 18 1E 24 7 0 7 E 15 1C 23 2A 8 0 8 10 18 20 28 30 9 0 9 12 1B 24 2D 36 A 0 A 14 1E 28 32 3C B 0 B 16 21 2C 37 42 C 0 C 18 24 30 3C 48 D 0 D 1A 27 34 41 4E E 0 E 1C 2A 38 46 54 F 0 F 1E 2D 3C 4B 5A 1.5 Multiplicación y división por la base. a) Multiplicación por la base. Para multiplicar por la base se multiplica el polinomio generador del número Nb por b de la siguiente forma: n -1 Nb = ∑ a i * bi = a n -1bn -1 + a n - 2 bn - 2 + a n - 3b n - 3 + ... + a 2 b2 + a1b1 + a 0 b0 i =0 Nb * b = (a n -1b n -1 + a n - 2 b n - 2 + a n -3b n - 3 + ... + a 2 b2 + a1b1 + a 0 b0 ) * b = a n -1b n + a n - 2 b n -1 + a n -3b n - 2 + ... + a 2 b3 + a1b2 + a 0 b1 = a n -1b n + a n - 2 b n -1 + a n -3b n - 2 + ... + a 2 b3 + a1b2 + a 0 b1 + 0 * b0 Luego el número Nb*b se escribe en términos de los coeficientes del polinomio de la siguiente forma: Nb * b = a n -1 a n - 2 a n - 3 ... a 2 a1 a 0 0 Lo anterior significa que para números enteros multiplicar por la base implica agregar como dígito menos significativo un cero. En forma similar a lo anterior, la multiplicación de un número con decimales por la base implica correr la coma a la derecha un dígito. b) División por la base. = an-1*bn-1+ an-2*bn-2+ ... + a0*b0+a-1*b-1+ a-2*b-2+ ... + a-m*b-m Nb Nb / b = (an-1*bn-1+ an-2*bn-2+ ... + a0*b0+a-1*b-1+ a-2*b-2+ ... + a-m*b-m ) / b = an-1*bn-2+ an-2*bn-3+ ... + a1*b0 + a0*b-1+a-1*b-2+ a-2*b-3+ ... + a-m*b-m-1 Se observa que el primer dígito decimal (que tiene la ponderación b-1) es ahora a0. Lo anterior equivale a correr la coma a la izquierda un dígito. 1.6 Sistemas complementarios. Se utilizan los sistemas complementarios para transformar la operación de resta en una suma como sigue: A – B = A + (-B) 1.6.1 Complemento a la base. [N]b = bn – (N)b Con: b n [N]b (N)b : Base del número. : Número de dígitos del número. : Complemento a la base b del número N. : Número en base b. Ejemplos: [13]10 = 102 – 13 = 100 – 13 = 87 [20]10 = 102 – 20 = 100 – 20 = 80 2 1 2 + 8 1 0 - 0 3 0 7 7 1 - 2 1 + 8 9 3 0 3 0 3 [ 9 3]10 = 102 – 13 = 100 – 93 = 7 • • • Si se resta con complemento a la base, se obtiene el resultado con signo. Método de resta ampliamente usado en computadoras, pues un solo módulo puede hacer restas y sumas. Las operaciones de multiplicación y división se hace más fácil realizarlas, pues estas operaciones están basadas en sumas y restas. 1.6.2 Complemento a la base con números binarios. Ejemplo: Complemento a dos de 101. [101]2=103 –101= 1000 - 101 1 - 0 0 0 1 0 1 0 0 1 1 Métodos específicos para el caso binario. 1.- Se cambia el valor de cada bit, y al número resultante se le suma 1. [101]2 = (101)* + 1 = 010 + 1 = 0 1 1 2.- Partiendo del dígito menos significativo se copia el número original hasta copiar el primer número 1, luego se cambia el valor de los bits restantes. [1 0 0 0 1 0 0] 2 = x x x x 1 0 0 = 0 1 1 1 1 0 0 1.6.3 Complemento a la base de números fraccionarios. Se define como: [N]b = 1 – (N)b Ejemplo: Complemento a 10 de 0,1279 [0,1279]10 = 1 – 0,1279 1, 0 0 0 0 - 0, 1 2 7 9 0, 8 7 2 1 1.6.4 Resta binaria complementaria. Para realizar la operación: (A)2 – (B)2 se realizan los siguientes pasos: 1.- Se obtiene el complemento a 2 del sustraendo: [B]2 2.- Se suma el minuendo con el complemento a dos del sustraendo. 3.- Si el resultado en la posición (n+1) produce un acarreo (1), el número es positivo. Si el resultado en la posición (n+1) no produce acarreo (0), el número es negativo. 1.6.5 Complemento a la base disminuida. El complemento a la base disminuida se define como: [N]b-1= bn - b-m – (N)b Con: b = base del número. N = número en base b. n = número de dígitos enteros. m = número de dígitos decimales Para números enteros se tiene que m = 0, luego [N]b-1= bn - b-m – (N)b = [N]b – 1 Ejemplos: • Complemento a (10 – 1) de 12,79. n=2 m=2 [12,79]10-1 = 102 - 10-2 - 12,79 = 100 – 0.001 –12.79 = 87.2 • Complemento a (2-1) de 1100 n=4 m= 0 [1100]2-1 = 104 – 100 – 1100 = 10000 – 1 – 1100 - 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 Existe un método particular para calcular el complemento a la base disminuida para números en base 2 y consiste en cambiar el valor de dígitos. Ejemplo: Calcular el complemento (2-1) de 1100. [1 1 0 0]2-1= (1 1 0 0)* = 0 0 1 1