conversion-entre-bases-en-binario

Cómo convertir números entre bases

En la entrada anterior hablamos de sistemas numéricos, representación de números, y sistemas posicionales.

Así, apareció el concepto de base, que es el conjunto de símbolos que vamos a emplear para representar los números (más concretamente, normalmente no nos referiremos a la cantidad de símbolos disponibles).

Así vimos un sistema numérico inventado que tenía esta base 🔵,🔺, 🟩,⭐. Ahora toca un poquito de matemáticas para “aposentar” los conceptos.

Durante esta entrada voy a usar base decimal como sistema “normal”. Básicamente porque si hablamos en estrellitas y cuadraditos, iba a costar entenderse. Pero recordad que todo sería igualmente válido con cualquier otro sistema.

¡Contenido matemático ahead! Si no te apetece leer matemáticas en este momento, vete por otra entrada y vuelve dentro de un rato.

Cuanto vale mi número en baseN

Volviendo a nuestro ejemplo de base 🔵,🔺, 🟩,⭐ (1, 2, 3, 4) ¿Qué equiparación con la base decimal tiene un número?

🌟

En este caso, tenemos una baseN = 4

  1. El dígito a la derecha puede tomar valores de 0 a 3
  2. Si hay un dígito en la posición siguiente, es que el de la derecha ha pasado 4
  3. Si hay otro dígito en la posición siguiente, es que se pasado 4 veces por 4
  4. Así sucesivamente…

Ejemplos

Es decir, si tenemos el número 🔺🟩 (1, 2)

  1. A la derecha tengo un 2
  2. A la izquierda tengo un 1, lo que significa que el de derecha ya ha pasado por 4 posiciones

Es decir, que el número que tengo es

4 + 2 = 6

Si el número fuera 🟩🟩 (2, 2), tendría

  1. A la derecha tengo un 2
  2. A la izquierda tengo un 2, lo que significa que el de derecha ya ha pasado 2 veces por 4 posiciones

As que el número que tengo es

(2 * 4) + 2 = 10

Y si sigo haciendo click hasta que tenga 3 dígitos 🔺🟩🟩 (1, 2, 2)

  1. A la derecha tengo un 2
  2. En medio tengo un 2, que vale por 4 x 2
  3. A la izquierda tengo un 1, que vale por 4 x 4
(1 * 4²) + (2 * 4) + 2 = 10

Conversión de BaseN a decimal

Entonces ¿Cómo convertimos de BaseN a decimal? Es lo que hemos hecho más arriba, pero generalizado a una base cualquiera.

Siendo,

  • Dᵢ el dígito en la posición i
  • Base, el número de símbolos en tu base

Por ejemplo, para convertir el número 2.310 en base 4 a decimal.

base₁₀  = 2 * 4³  + 3 * 4²  + 1 * 4¹  + 0 * 4
        = 128      + 48       + 4        + 0
        = 180

Esta ecuación también es equivalente a esta sucesión

Conversión de decimal a BaseN

Ahora vamos a ver el proceso inverso pasar un número decimal a un BaseN. En este caso lo más sencillo es que vayamos a ir dividiendo y calculando residuos.

Veamos con un ejemplo, convertir 180 a base 4.

base=> 180 / 4 = 45,   residuo 0
          45 / 4 = 11,   residuo 1
          11 / 4 = 2,    residuo 3
           2 / 4 = 0     residuo 2

Y tu número decimal 180 convertido a base 4, son los residuos ordenados, 2310.

Comparación con decimal

¿Te parece raro todo eso? Si te ha resultado complicado de visualizar, piensa un momento en el sistema decimal.

0

Imaginemos el número 1.537. Lo que hemos dicho es que, podemos pensar en 1.527 como una suma de potencias de 10.

1.537 = 1.000 + 500 + 30 + 7

//que es lo mismo que decir
1.537 = (1 * 10³) + (5 * 10²) + (3 * 10) + (7)

¡Haces esas operaciones continuamente! Simplemente es que el sistema decimal lo tienes muy interiorizado.

También hemos dicho que, en lugar de pensarlo como una suma de potencias, puedes pensarlo como una sucesión. En cada paso multiplicas el anterior por 10, y le sumas un numero.

1.537 = 153 * 10  + 7
      = (15 * 10 + 3) * 10 + 7
      = (1 * 10 + 5) * 10 + 3) * 10 + 7

Finalmente, también puedes hacer la sucesión al revés, y quedarte con los restos

base10 => 1.537 / 10 = 153,  residuo 7
	        153 / 10 = 15,   residuo 3
            15 / 10 = 1,    residuo 5
             1 / 10 = 0     residuo 1

Son las mismas operaciones que has hecho para el cambio de base, solo que en lugar de ‘10’ has puesto BaseN.