FPAR.1.01.Sistemas de Numeración 1.Sistemas de Numeración Un sistema de numeración es una forma de representar cualquier cantidad numérica. Casi todos los sistemas de numeración utilizados en la actualidad son de tipo polinomial. Todo sistema polinomial cumple las siguientes características: • Todo número es una expresión formada por un conjunto de símbolos, llamados dígitos, cada uno con un valor fjo y diferente a los demás. • El número de símbolos distintos que se pueden usar en un determinado sistema de numeración constituye su "base": ◦ En base 10 los números que podemos representar son {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} ◦ En base 2 son {0, 1} ◦ En base 16 son {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F} • El valor numérico que expresa una determinada combinación de dígitos en una base de numeración dada depende del valor de los dígitos y de la posición que ocupan. • Cada posición del dígito tiene un valor que aumenta de derecha a izquierda según potencias sucesivas de la base del sistema de numeración empleado. 1.Sistema Binario Se utilizan sólo dos símbolos, {0, 1}, denominados bits. Veamos un método para convertir un número decimal (entre 0 y 255) en binario, tendremos en cuenta la siguiente tabla (potencias de 2): 27 26 25 24 23 22 21 20 128 64 32 16 8 4 2 1 Supongamos que queremos convertir el número decimal 238 a base binaria. Para ello, buscamos en la tabla anterior el número más alto, sin pasarse. En este caso, el 128. Escribiremos debajo un 1. 128 64 32 16 8 4 2 1 1 Ahora restaremos 238-128=110. Efectuamos la misma operación con 110, por lo que encontramos que tenemos que marcar el 64. 128 64 1 1 32 16 8 4 2 1 Ahora restaremos 110-64=46. Efectuamos la misma operación sucesivamente, por lo que tendremos que marcar el 32, 8, 4 y 2: 128 64 32 1 1 1 16 8 4 2 1 1 1 1 Completamos los huecos con ceros y resulta: 238=0b11101110 Si queremos convertir un número binario a decimal, basta con realizar la siguiente operación. Tomamos de nuevo la tabla anterior: 27 26 25 24 23 22 21 20 128 64 32 16 8 4 2 1 Planificación y Administración de Redes 1 FPAR.1.01.Sistemas de Numeración Supongamos que queremos convertir a decimal el número 0b11001101. Para ello, ponemos cada dígito del número a convertir debajo de cada potencia de la tabla: 128 64 32 16 8 4 2 1 1 1 0 0 1 1 0 1 Y sumamos todas las cifras que tienen un 1 debajo: 128 + 64 + 8 + 4 + 1 = 205 Por tanto, 0b11001101=205 2.Sistema Hexadecimal Uno de los problemas fundamentales a los que se enfrentaron los pioneros de la informática era la comodidad a la hora de trabajar con un ordenador. Puesto que éste emplea únicamente ceros y unos para representar la información, los operadores humanos no estaban acostumbrados a trabajar de ese modo, utilizando ristras tan largas de ceros y unos. Para evitar tener que realizar constantemente operaciones de conversión, se pensó en utilizar un sistema de numeración que cumpliera dos condiciones: • La base del sistema sea sufcientemente cercana al decimal como para permitir a los humanos adaptarse fácilmente a ella y usarla con facilidad. • La conversión con el binario sea lo más sencilla posible. Dec Hex Bin Hay varios sistemas de numeración que cumplen esas dos condiciones, sin embargo, el que más se ha utilizado y se sigue utilizando es el hexadecimal. 0 0 0000 1 1 0001 En este sistema, la base es 16, por lo que existen dieciséis símbolos diferenciados para representar los números: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F} 2 2 0010 3 3 0011 La clave del sistema hexadecimal reside en que su base es potencia de 2: 24=16. De este modo, la conversión entre los dos sistemas de numeración (binaria y hexadecimal) es inmediata, como veremos a continuación. 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 Escribamos en primer lugar una tabla con la representación en decimal, hexadecimal y binaria de los números cero a quince. Supongamos que queremos pasar el número 0b110100011 a base hexadecimal. Para ello, tomaremos los dígitos binarios de cuatro en cuatro, partiendo desde la derecha, y rellenamos con ceros por la izquierda: 0001-1010-0011 Ahora buscamos en la tabla de arriba los dígitos en hexadecimal correspondientes a cada grupo, obteniendo: 0b0001-0x1; 0b1010-0xA; 0b0011-0x3. Por tanto, podemos asegurar: 0b110100011= 0x1A3 Lo mismo es aplicable para la conversión de hexadecimal a binario: basta con sustituir los dígitos hexadecimales por la representación binaria de éstos, con cuatro cifras. Por ejemplo, para convertir 0x5F6C, 0x5-0b0101; 0xF-0b1111; 0x6: 0b0110; 0xC-0b1100. Podemos asegurar: 0x5F6C = 0b0101111101101100 Planificación y Administración de Redes 2