sistemas de numeracion - IES Pintor Antonio Lopez
Transcripción
sistemas de numeracion - IES Pintor Antonio Lopez
SISTEMAS DE NUMERACION 1.- INTRODUCCION Técnicamente, la representación en binario (0 y 1) del sistema decimal presenta una serie de ventajas tanto dentro del control, de la transmisión de datos o de los automatismos, en la cual no sería un solo bit el que intervendría, sino un grupo que represente a un número o una palabra, pero que a nivel de lenguaje binario nos obliga a asociar los en grupos, palabras que serán delimitadas por su longitud. Se necesita una interrelación hombre-máquina, y más concretamente se necesita efectuar operaciones aritméticas. Esto plantea que de alguna forma se necesite pasar del lenguaje decimal al lenguaje de 1 y 0, agrupando estos de cierta manera para representar al anterior; en una palabra, se necesita un sistema de numeración que nos permita agrupar una serie de símbolos, bajo unas determinadas reglas para que representen una determinada palabra o cantidad. La forma o regla a aplicar en esta agrupación se denomina código; lo cual permite la aparición de diferentes códigos, según el tipo de técnica a aplicar. 2.- SISTEMA DE NUMERACION DECIMAL El estudio en cualquier tipo de sistema de numeración, eligiendo cualquier tipo de base diferente a la decimal, pasa por el conocimiento de la misma, sin perder de vista que el sistema siempre va a actuar a nivel de lenguaje binario, aunque la forma de agruparlo dependerá del código elegido. El sistema de numeración decimal esta representado por diez números, de 0 a 9, cuyo valor y significado dependerá de la posición que ocupe dentro del propio número (unidad, decenas ...) Esta posición se podrá expresar en forma de potencias de diez, paso del número y base del sistema de numeración. Por ejemplo, el número 782 podrá ser descompuesto en 7.100+8.10+2 = (7.102 + 8.101 + 2.100 ) El 7, numero de mayor peso, 102 , centenas; el 8, 101 , decenas y el 2,10°, unidades. Se observa que cada número que forma parte del sistema de numeración decimal posee un valor asociado a su posición relativa y a una potencia de 10, base del sistema de numeración. De esta misma forma se podría expandir la metodología de representación de cualquier número, bien sea entero o decimal. Como ejemplo tomemos el caso de un número decimal: 168,17 ; 1x 100 = 1.102 6x10 = 6.101 8x1. = 8.100 1x0,1 = 1.10-1 7x0,01 = 7.10-2 168,17 = 1.102 + 6.101 + 8.100 + 1.10-1 + 7.10-2 La única diferencia existente entre ambas expresiones en la de introducir potencias negativas en la expresión de los números decimales. 3.- SISTEMA DE NUMERACION BINARIO Se denomina sistema de numeración binario, o base 2, a aquel sistema de numeración que posee tan solo dos símbolos, 0 y 1, mediante el cual se podrá representar cualquier cantidad o carácter. Las cuestiones a plantearse serian como se podría representar un número decimal en lenguaje binario y posteriormente como se podría operar con él. La primera cuestión la resolvemos como extensión del estudio de los números decimales o de base diez para lo cual tomamos p.ej. el número 376 y dividamos sucesivamente por su base 10. 376 6 10 37 7 10 3 El último cociente es la cifra más significativa y el resto de la anterior división la siguiente cifra significativa. En una palabra saldría el mismo número a la inversa. De esta manera el número presentado puede ser expresado como una suma de números independientes asociados a su base y a su peso: 376 = 3.102 + 7.101 +6.10° Si aplicamos el mismo concepto al caso del sistema binario, tan solo se tendrá que tener en cuenta que la base del mismo es 2 en vez de binario el número 10. 10 2 0 5 2 1 2 2 0 1 1 Comenzando a leer a partir del último cociente y los restantes restos el resultado sería: 1010 = 10102 Este tipo de paso de número decimal a binario o de binario a decimal podría aplicarse a cualquier otro tipo de decodificación sea cual sea la base a utilizar. Existen reglas mas sencillas para el paso de números decimales a binarios y viceversa que nacen de la observación de las operaciones planteadas anteriormente y más concretamente la que se va a indicar a continuación. Esta regla está basada en lo siguiente: Si observamos las potencias consecutivas del número 2, base binaria, en función de la posición concreta se tendría: 16 8 4 2 1 24 23 22 21 20 4 3 2 1 0 10000 1000 100 10 1 Un número decimal podría construirse como sumatorio de estas potencias básicas. Tomemos por ejemplo el número 25 = 16 + 8 + 1 = 24 + 23 + 2° = 11001 Regla de paso sencilla y en la cual la operación inversa será de idéntica sencillez. Esta regla tan sencilla nos permitirá operar en binario con mayor comodidad y rapidez permitiéndonos realizar las operaciones con mayor seguridad. 4.- OPERACIONES EN EL SISTEMA DE NUMERACION BINARIO Dentro de este sistema de numeración se podrán efectuar tanto operaciones matemáticas como lógicas con aplicación al desarrollo de sistemas digitales. Las operaciones -aritméticas que se pueden plantear son las mismas que en el sistema de numeración decimal: suma, resta, multiplicación y división. Sin embargo la comprensión de las mismas, pasa por la representación y operación de números negativos, teniendo que ser introducidos en dichas expresiones para entender mejor las operaciones y como se realizan en sistemas digitales, automatismos, ... Veamos solo la suma y resta. 4.1.- Suma en binario Esta operación es totalmente semejante a la efectuada en la suma de números decimales, pues se trata únicamente de sumar los bits de igual peso de ambos números con el posible acarreo procedente de la suma de los bits de peso inmediatamente inferior. Tomemos como ejemplo la suma de los dos números 11010 y 10011 1 1 ACARREO 1 1 0 1 0 1 0 0 1 1 1 0 1 1 0 1 Esta operación aritmética así planteada nos permitiría la suma de dos números binarios, cuando ambos son positivos. De igual manera la operación de restar dos números puede ser asociada a la operación de sumar un número con el negativo del otro número que interviene en la operación. Por esta razón introduciremos primero el concepto de número negativo y su forma de representación. 4.2.- Representación de números negativos Las formas adoptadas para la representación de números binarios negativos son múltiples habiendo pasado por situaciones históricas muy diferentes, pero sin embargo si se adopta la técnica mas realista y común existente se centrará en como interpretan los sistemas automáticos y mas concretamente los ordenadores, el presente número. Fundamentalmente, si partimos de un microprocesador con una longitud de palabra de 8 bits, denominada byte, obtendremos que el valor del bit mas significativo se reserva al signo si es 0 el número es positivo y si es 1 el número es negativo. Esto reduce el valor máximo a representar a los 7 bits siguientes. Esta forma de representación va acompañada de las operaciones aritméticas básicas, suma y resta, y a la representación en complemento a 2. La forma mas sencilla de comprender este tipo de actuación es partiendo de la explicación de que es el cálculo complemento a 2 y posteriormente aplicarlo a las operaciones aritméticas. Calculo del complemento a 2 de un número El complemento a 2 de un número se calcula sumándole uno al complemento a uno de dicho número binario. Veamos ambos procesos: 2 a) Calcular el complemento a uno de un determinado número binario, es simplemente cambiar los unos por ceros y los ceros por unos en el mismo número, por ejemplo el complemento a 1 del número 9, se expresaría de la siguiente forma: número 9 = 0 0 0 0 1 0 0 1 com 1 =11110110 b) El complemento a 2 del número sería simplemente sumar uno al complemento a uno. Siguiendo con el caso anterior se tendría: com 1 11110110 +1 Com 2 11110111 Esta forma de representación tiene una gran importancia en los sistemas electrónicos y mas concretamente en los microprocesadores pues permiten a dichos sistemas discriminar entre un número positivo y negativo. Para centrar aún mas los conceptos, la longitud de palabra que se tendrá en cuenta será de 8 bits (byte), lo cual nos permitirá centrar los conceptos en el campo de microprocesadores aunque todos los razonamientos que se realicen sirven para cualquier otra longitud de palabra. De igual forma el bit de mas alto orden de la palabra será reservado al signo (0 = positivo, 1 = negativo), aunque en teoría puedan representarse ambos tipos de números, positivos y negativos, en complemento a 2, en estos sistemas tan solo los números negativos se expresarán de esta forma. Veamos en el siguiente ejemplo de aplicación la forma de representación general de dichos números. EJEMPLO DE APLICACION Representar en complemento a 1 y 2, los siguientes números decimales: 10, -12, 28, 17, -18. Calcular la magnitud verdadera. SOLUCION El introducir el concepto de magnitud verdadera corresponde con el de realizar una conexión con la anterior representación de números positivos y que no hay que confundir. Tomemos como punto de partida los números 10 y -12. a) número 10: número binario 1010 La magnitud verdadera sería el añadir a dicho número un 0 o 1 dependiendo de si es positivo o negativo. La magnitud verdadera seria: 0. 1 01 0 b) número -12: número binario1100 magnitud verdadera 1.1100 Sin embargo en el caso de expresión de números positivos y negativos en palabras de 8 bits de longitud se tendría: a) número 10: n° binario 1010, complétese a 8 bits 0000.1010 b) número -12. Al ser un número negativo se calculará su complemento a 2 de la siguiente manera: n° binario 1100, completar palabra 0000.1100 com 1= 1111.0011 +1 com 2= 1111.0100 B) Sumar 4 a -8 DEC BINARIO COM 1 COM2 NÚMERO 4 0000.0100 0000.0100 -8 0000.1000 1111.0111 1111.1000 1111.1000 SUMA 1111.1100 1111.1100 0000.0011 0000.0100 RESULTADO NEGATIVO -4 En el caso de que ambos números sean negativos el resultado será siempre negativo y el cálculo se hará realizando el complemento a 2, como en el caso anterior. 4.3.- Restar dos números Este proceso aritmético sería idéntico al caso indicado anteriormente por poder considerar la resta como la operación de sumar dos números uno de los cuales es negativo. 3 5.- SISTEMA DE NUMERACION HEXADECIMAL El desarrollo de un sistema pasa por aprovechar al máximo sus posibilidades o lo que es lo mismo, hacer que de una palabra de cuatro bits tengamos el máximo de aprovechamiento significaría que seríamos capaces de cubrir hasta el último valor de 1111, número 15 en decimal o de otra forma posibilidad de expresar dicho número en base 16. Esta máxima utilización da lugar a la aparición del sistema de numeración hexadecimal, base de todas las técnicas de microprocesadores en la actualidad y que nos sirve como paso al propio lenguaje de máquina de las CPU. Este tipo de sistema utiliza 16 símbolos, los propios diez del sistema de numeración decimal y los seis restantes tomados del propio alfabeto. La tabla muestra la equivalencia conjunta del sistema decimal, hexadecimal y binario. DECIMAL HEXADECIMAL BINARIO 0 0 0000 1 1 0001 2 2 0010 3 3 0011 4 4 0100 5 5 0101 6 6 0110 7 7 0111 8 8 1000 9 9 1001 10 A 1010 11 B 1011 12 C 1100 13 D 1101 14 E 1110 15 F 1111 La forma de conversión existente entre el sistema decimal y el hexadecimal sería la clásica en este tipo de pasos, efectuar divisiones sucesivas respecto a su base, como se indicó para el caso del sistema binario. Sin embargo, la utilización de dicho sistema como puente entre el sistema decimal y el binario posee un alto interés por la facilidad de comprensión, evitando el tedio de efectuar divisiones sucesivas por 2 o el acudir al sistema de pesos, como ya se explicó en los apartados correspondientes. Veamos un ejemplo de conversión, a través de expresar en hexadecimal el número 378. El expresar el número 378 en hexadecimal pasaría, en primer lugar, por efectuar divisiones sucesivas por su base, 16 378 16 10 23 16 7 1 378 10 =17A16 De forma inversa, el paso de un número hexadecimal a decimal se realizaría de idéntica manera a como se realizó en sistemas de numeración anteriores. numero decimal. 1.162 + 7.161 + A.160 = 37810 = 256 + 112 + 10 = 378 Una de las grandes ventajas que posee el sistema hexadecimal, al margen de las suyas propias, es la comodidad de paso a sistemas binarios y de binarios a decimales, sobre todo en el caso de números altos. Veamos un ejemplo. Si se expresa el número 378 en binario, bien a través de su calculo por divisiones sucesivas o bien por la ley de pesos, se tendría: 37810 = 1011110102 Si el número binario lo agrupamos de cuatro en cuatro bits comenzando por el menos significativo, y a continuación se pasa a hexadecimal, el resultado sería: 0001 =1 0111 =7 1010 = A Esta identificación binaria-hexadecimal supone un paso mas sencillo en la comprensión de los códigos máquina que se utilizaron en los sistemas microprocesadores, permitiendo el seguimiento bit a bit de las operaciones efectuadas con los mismos. 4