Secuencia de dígitos 𝑑 𝑛 𝑑𝑛−1 𝑑𝑛−2…….. 𝑑 0 ↓ ↓ 𝑀𝑆𝐵 𝐿𝑆𝐵 Donde MSB= Most Significant Digit LSB=Least Significant Digit Donde el valor del entero positivo se obtiene: 𝒅𝒏 . 𝒃𝒏 + 𝒅𝒏−𝟏 . 𝒃𝒏−𝟏 + ⋯ … + 𝒅𝟎 𝒃𝟎 (1) Ejemplo: El número 4305 en el sistema numérico de base 10 es: 4𝑥103 + 3𝑥102 + 0𝑥101 + 5𝑥100 4000 + 300 + 0 + 5 Cuatro sistemas numéricos son de particular importancia para la computadora: Base 2: Binaria ={0,1} B Base 8:Octal={0,1,2,3,4,5,6,7}Q Base 10:Diez={0,1,2,3,4,5,6,7,8,9}D Base 16:Hexadeciamal={0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}H Base Hexadecimal A B C D E F Ejemplos: Convertir las siguientes expresiones en base 10 Base Diez 10 11 12 13 14 15 A) 3𝐹𝐴0416 = ( )10 B) 1101112 = ( )10 C) 34568 = ( )10 D) 121134 = ( )10 ENTEROS POSITIVOS FRACCIONARIOS El desarrollo anterior es adecuado sólo para enteros positivos. Para representar valores fraccionales debe ser expandida la formula (1) para que incluya exponentes negativos. Un número con parte fraccional está representado por el conjunto de dígitos siguiente: 𝑑𝑛 𝑑𝑛−1 𝑑𝑛−2…….. 𝑑0 . 𝑑−1 𝑑−2 𝑑−3 … …. El valor del entero positivo incluyendo su parte fraccional esta dado por: 𝒅𝒏 . 𝒃𝒏 + 𝒅𝒏−𝟏 . 𝒃𝒏−𝟏 + ⋯ … + 𝒅𝟎 𝒃𝟎 + 𝒅−𝟏 . 𝒃−𝟏 + 𝒅−𝟐 . 𝒃−𝟐 + 𝒅−𝟑 . 𝒃−𝟑 … … … Ejemplo: Convertir (110.111)2 = ( )10 Ejercicios: Convertir las siguiente bases a base 10 a) (.325)6 = ( )10 b) (144)8= ( )10 c) (111011.111)2=( d) (12AF.DE)16=( )10 )10 CONVERSION DE BASE 10 A CUALQUIER BASE Dado X, que es un entero en base 10 y se desea obtener un número Y en base C. El número Y estará compuesto por los dígitos 𝑦𝑛 𝑦𝑛−1 𝑦𝑛−2 … . . 𝑦1 𝑦0 , entonces el número X podrá ser expresado en términos de estos dígitos tal como sigue: 𝑋 = 𝑦𝑛 . 𝑐 𝑛 + 𝑦𝑛−1 . 𝑐 𝑛−1 + ⋯ + 𝑦1 . 𝑐1 + 𝑦0 Algoritmo 1) Dividir X entre la base deseada (C) 2) 𝑋 𝐶 = (𝑦𝑛 . 𝑐 𝑛−1 + 𝑦𝑛−1 . 𝑐 𝑛−2 + ⋯ + 𝑦1 . 𝑐 0 ) + = Q1 + 𝑦0 𝐶 𝑦0 𝐶 3) Los términos entre paréntesis son múltiplos de potencias de C y de ahí que sean divisibles entre C. 4) El número y0, es un número menor que C, por lo tanto representa el residuo de la división de X/C. Por lo tanto el primer dígito de Y es el residuo obtenido al dividir X/C. 5) Una vez obtenido y0, el siguiente dígito es y1, que se puede obtener al dividir nuevamente Q1 por C , y así sucesivamente hasta que un cociente cero sea obtenido. Ejemplo: Convertir (53)10=( )8 53/8 = 6 + 5/8 y0= 5 6/8 = 0 + 6/8 y1= 6 Ejercicios: Convertir a la base indicada a) b) c) d) e) (100)10= ( )8 (53)10= ( )2 (1531)10=( )6 (82)9=( )7 (123)7=( )3 CONVERSIÓN DE UNA FRACCIÓN DE BASE 10 A CUALQUIER BASE Sea X una fracción representada en un sistema numérico de base 10. Para obtener la correspondiente fracción Y en un sistema numérico de base C, donde Y estará compuesto por los dígitos 𝑦−1 𝑦−2 𝑦−3 … … . 𝑦−𝑚 , donde el número X puede ser expresado en términos de estos dígitos: 𝑋 = 𝑦−1 . 𝑐 −1 + 𝑦−2. . 𝑐 −2 + … … + 𝑦−𝑚 . 𝑐 −𝑚 Algoritmo: a) Multiplicar X por C 𝐶𝑋 = 𝑦−1 + (𝑦−2. . 𝑐 −1 + … … + 𝑦−𝑚 . 𝑐 −𝑚+1 = 𝑦−1 + 𝐹1 b) El primer dígito obtenido es y-1 c) El siguiente dígito puede ser obtenido de manera semejante sólo que ahora se debe multiplicar F1 por C, reteniendo la parte entera y así sucesivamente. d) Cuando el valor fraccional llegue a cero, entonces el proceso termina. Ejemplo: convertir (.609375)10= ( )4 Ejercicios: Convertir a) (.5)10 = ( b) (.80)10=( c) (.34)10=( )2 )2 )3 MÉTODOS CORTOS DE CONVERSIÓN Los números 8 y 16 son potencias de 2 a) La conversión binario-octal y octal y binario involucra 3 bits (23 = 8) b) La conversión binario-hexadecimal y hexadecimal-binario involucra 4 bits (24 = 16) Ejemplos: Sean las siguientes equivalencias en binario Equivalencias 0 1 2 3 4 5 6 7 3 bits 000 001 010 011 100 101 110 111 4 bits 0000 0001 0010 0011 0100 0101 0110 0111 8 9 10 11 12 13 14 15 Convertir el número binario 0101011111001101B a octal y hexadecimal 1000 1001 1010 1011 1100 1101 1110 1111 0 101 011 111 001 101 binario 0 5 3 octal 7 1 5 0101 0111 1100 1101 5 7 C D Forma rápida para convertir de decimal a binario 128 64 32 16 8 4 2 1 8 0 4 0 2 1 1 1 Ejemplo: Convertir (83)10 =( )2 128 0 64 1 32 0 16 1 Operaciones con números binarios SUMA BINARIA 𝑀 Sean dos números M y N a los cuales se desea obtener su suma + 𝑁 Reglas: 0 0 0 + Ejemplos: + 110101101 011101110 1010011011 RESTA BINARIA 1 0 1 + 0 + 1 1 1 1 10 + + 01010001 01000110 10010111 Sean M y N dos números a los cuales se desea obtener su resta, es decir Reglas − 0 0 0 1 0 1 − 1 − 1 0 0 1 11 − Ejemplos: 1101 1001 0100 − 100000 011111 000001 − 10111010 01011111 01011011 − MULTIPLICACIÓN BINARIA Sean M y N dos números a los que se quiere multiplicar tal que M*N =P REGLAS DE MULTIPLICAR ∗ EJEMPLOS 1 0 0 ∗ 1 1 1 ∗ 0 1 0 ∗ 0 0 0 −𝑀 𝑁 𝑆 11011 111 11011 11011 11011 __________________ 10111101 ∗ EJERCICIO: 10101*1011 DIVISIÓN BINARIA 𝑀 Se desea dividir dos números M y N tal que 𝑁 En este caso no hay reglas Ejemplo: 10011 1 = 11 + 110 110 Ejercicio: Dividir 100010010 = 1101 Otros métodos de conversión Conversión de decimal a binario Método por descomposición y residuos Algoritmo 1.- Se tiene en cuenta si el número es par o impar, colocando un 1 si es impar o 0 si es par. 2.- Se halla la mitad del número, luego se repiten estos pasos hasta que el resultante sea menor que la base. Ejemplo: Convertir (25)10=( 11001 )2 25 1 12 0 6 || 0 3 1 {1 } Ejercicio: (34)10=( )2 MÉTODO POTENCIA CERCANA 1.-Se busca la potencia más cercana al número y se le resta 2.- Se repite el procedimiento hasta que el resultante sea menor que la base 3.- Cada potencia representa los bits significativos del número Ejemplo: 24 = −25 16 9 2 3 −8 = 1 20 − − − − −−→ 4 3 2 1 0 (2 2 2 2 2 ) 1 1 0 0 1 Ejercicio: Resolver para (34)10= ( )2 Conversión de Hexadecimal a Decimal Para convertir el número hexadecimal A7B8 a un número hexadecimal, inicie con el dígito hexadecimal de más a la izquierda (A), de forma continua, multiplique cada dígito hexadecimal por 16 y acumule los resultados. Pasos: Primer dígito: A(10) 10 ∗16 160 Multiplicar por 16 Sumar el dígito siguiente,( 7) +7 167 Multiplicar por 16 Sumar el dígito siguiente, B(11) Multiplicar por 16 Sumar el siguiente dígito, 8 Ejercicio: Convertir (3A3B)16= ( ∗16 2672 +11 2683 ∗16 42928 +8 42936 )10 OPERACIONES ARITMÉTICAS ENTRE BASES 12124 0214 12334 + 12124 ∗ 0214 1212 3030 −−−− 321124 BASE 10 0 1 2 3 4 5 6 7 8 9 10 11 12 BASE 4 0 1 2 3 10 11 12 13 20 21 22 23 30 BASE 8 0 1 2 3 4 5 6 7 10 11 12 13 14 7238 ∗ 15 4437 723 −−−− 13667 1𝐹23 2𝐵𝐴 21𝐷𝐷 + 3𝐴𝐵 3 = 4𝐸 + 𝐶 𝐶 NÚMEROS CON SIGNO Supongamos que se tiene una computadora, cuya longitud de palabra es de 4 bits. Con 4 bits podemos obtener 16 (24) combinaciones de bits. Si sólo manejamos números enteros, podemos representar enteros del 0 al 15; sin embargo si manejamos números negativos, algunas combinaciones deberán representar a dichos números. Para tener un sistema balanceado, tomemos la mitad de combinaciones como números positivos y la otra mitad como números negativos, tal como se índica: 0, 1, 2,….., 7 Números positivos -1, -2, -3, …,-7 Números negativos Número Decimal +0 +1 +2 +3 +4 +5 +6 +7 Asignación de bits 0000 0001 0010 0011 0100 0101 0110 0111 Número Decimal -0 -1 -2 -3 -4 -5 -6 -7 El dígito más significativo para los números positivos es cero El dígito más significativo para los números negativos es uno Asignación de bits 1000 1001 1010 1011 1100 1101 1110 1111 Nota: inconveniente la existencia de 2 tipos de cero. Solución: Complemento a 2’s y Complemento a 1’s Con el esquema del complemento a dos, hay una sola representación del cero Binario 0000 0001 0010 0011 0100 0101 0110 0111 2’s 0 +1 +2 +3 +4 +5 +6 +7 1’s +0 +1 +2 +3 +4 +5 +6 +7 Binario 1000 1001 1010 1011 1100 1101 1110 1111 2’s -8 -7 -6 -5 -4 -3 -2 -1 1’s -7 -6 -5 -4 -3 -2 -1 -0 FÓRMULA PARA OBTENER EL COMPLEMENTO A 2 𝑋 ∗ = 𝑏 𝑛 − |𝑋| X=número original n= número de dígitos b=base FÓRMULA PARA OBTENER EL 1´S 𝑋 ∗ = 𝑏 𝑛 − 1 − |𝑋| X=número original n= número de dígitos b=base Ejemplos: Hallar el 2’s de 6 (0110). Se asume que el número tiene 4 bits en longitud 𝑋 ∗ = 24 − |6| = 16 − 6 = 10 104-|0110|=10000-0110=1010 Hallar el 1’s de 6 𝑋 ∗ = 24 − 1 − |6| = 16 − 6 = 10 104-1-|0110|=10000-0001-0110=1001 Ejercicios: Hallar el complemento a 10’s de 235 n=3 𝑋 ∗ = 103 − |235| = 1000 − 235 = 765 Hallar el complemento a 9 de 235. MÉTODO FÁCIL DE CONVERSIÓN DEL 2’S ALGORITMO a) Invertir la cadena de ceros y unos (1->0 y 0->1) b) Al resultado obtenido en a) sumarle la unidad. Ejemplo: 6 → 0110 → invertir → +1001 0001 1010 Ejercicio: Hallar el 2’s de -6, 7 y 4 MÉTOD FÁCIL PARA HALLAR EL 1’S ALGORITMO: Invertir cadena de ceros y unos (1-> 0 y 0->1) Ejemplo: Hallar el complemento a uno de 6 6 → 0110 → invertir → 1001 Ejercicio: Hallar el 1’s de 7, -6 y 4 OPERACIONES ARITMÉTICAS EN 2’S +5 −7 −2 + 0101 + 1001 1110 −2 Ejercicios (2’s): +5 −3 −2 OPERACIONES ARITMÉTICAS EN 1’S +5 −7 −2 + 0101 + 1000 1101 −2 Ejercicios (1’s): +5 −3 −2 SOBREFLUJO En un sistema de computo cuyos registros almacenan 8 bits, el mayor número positivo es +127 (01111111B o 7FH) y el menor número negativo es de -128 (10000000B o 80H). Cuando se suman dos números del mismo signo o se restan dos números de signo distinto, es factible exceder los límites (-128 a 127) y obtener resultados incorrectos (OVERFLOW). Los microprocesadores suelen detectar los errores de sobre flujo, generados cuando se suman o restan números con signo, verificando el acarreo producido en las posiciones de los bits más significativos (bits 6 y 7). Ejemplo: 0101 +0111 0100 0001 1010 +1100 1001 0110 En el primer ejercicio se suman dos números positivos y el resultado es un número negativo. En el segundo ejercicio sumamos dos números negativos y el resultado es un número positivo. Nota: en ambos casos el problema es que se excedió el rango de los enteros (24), lo cual se considera como un sobre flujo (overflow). Existirá error de sobre flujo cuando solamente en una de las dos posiciones se genere acarreo. Ejemplo: 0111 1100 0000 0110 1000 0010 + Se produce un sobre flujo, ya que se produce acarreo en la posición del bit 6 más no en la del bit 7. 1100 0110 1111 0100 11011 1010 + No existirá error de sobre flujo, cuando no se generen acarreos en ningún de los dos bits más significativos, o cuando se generen en ambos