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
- El dígito a la derecha puede tomar valores de 0 a 3
- Si hay un dígito en la posición siguiente, es que el de la derecha ha pasado 4
- Si hay otro dígito en la posición siguiente, es que se pasado 4 veces por 4
- Así sucesivamente…
Ejemplos
Es decir, si tenemos el número 🔺🟩 (1
, 2
)
- A la derecha tengo un
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
- A la derecha tengo un
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
)
- A la derecha tengo un
2
- En medio tengo un
2
, que vale por 4 x 2 - 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 iBase
, 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.
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.