Pasar de base 10 a base 256

Expertos. Tal vez esto sea más sencillo de lo que parece, pero no tengo ni idea de cómo hacerlo.
Como tal vez sepáis, las direcciones IP que se utilizan en Internet constan de cuatro grupos de números que pueden tener valores comprendidos entre el 0 y el 255. La notación que se emplea normalmente tiene la forma: 127.0.0.1
Hay situaciones en las que alguien, con el convierte esos números a notación decimal. Esto suele hacerse con la intención de ocultar una dirección IP a ojos de un usuario inexperto. Los sistemas operativos normalmente son capaces de traducir automáticamente una dirección ip en base 10 (2130706433) a su equivalente en 4 grupos en base 256 (127.0.0.1).
No obstante, me estoy presentando a una certificación en la que me obligan a hacer esa conversión con la ayuda de una calculadora.
¿Cómo debería hacer la conversión? Tendré el mismo problema para traducir entre base 10, base 8 y base 16, pero supongo que si entiendo el mecanismo para el caso de base 256 a base 10, podría hacerlo en todos los demás casos.

1 Respuesta

Respuesta
1
Vamos a ver... Cómo te lo explico... Cada grupo en base 256 es una cifra en esa numeración. Para pasar de cualquier base a base 10 lo que tienes que hacer es esto: Supongamos el número 127.0.0.1, en base 256. Para calcular cuanto es en base 10 hacemos 127x256^3 + 0x256^2 + 0x256 + 1x256^0 Como sabrás, 0 x cualquier cosa es x y cualquier cosa elevado a 0 es 1, por lo tanto queda 127x256^3 + 1 = 2130706433. Si fuera 234.34.87.32, pues sería 234x256^3 + 34x256^2 + 87x256 + 32 = 3928119072. Con un número en hexadecimal, por ejemplo 3A4B = 3x16^3 + 10x16^2 + 4x16 + 11 = 14923.
Si tienes más dudas, aquí estoy.
Magaka0, muchísimas gracias por la respuesta. No obstante, necesito una (creo) última aclaración. ¿Me puedes poner un ejemplo de cómo convertirías nuestro famoso 2130706433 (base 10) a cuatro octetos en base 256?
¿Divisiones sucesivas, tal vez? Es muy fácil si quiero convertir 8 (base 10) a base 2:
8/2 = 4 (resto = 0)
4/2 = 2 (resto = 0)
2/2 = 1 (resto = 0)
Ahora tomo el último valor divisible y tomo los restos en orden inverso, obtengo el valor 1000 y me salen las cuentas. ¿Cómo puedo aplicar este método para convertir de base 10 a base 256?
Gracias en todo caso!
Vamos a ver, para pasar de decimal a 256, hay que hacer lo mismo que con el binario, es decir, tomando el número 2130706433, lo dividimos entre 256, nos da 8323072 y de resto 1, dividimos 8323072 entre 256 y nos da 32512 y de resto 0, dividimos 32512 entre 256 y nos da 127 y de resto 0. Así que, cogemos el último resultado y los restos hacia atrás y nos da: 127.0.0.1

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas