All Your Base

All Your Base

Difícil

Introducción

Acaban de contratarte como profesor de matemáticas. Tu primera semana fue bien, pero algo no cuadra en la segunda. ¡El problema es que todas las respuestas que dan tus estudiantes están mal! Por suerte, tus conocimientos de matemáticas te han permitido identificar el problema: ¡las respuestas de los estudiantes sí son correctas, pero todas están en base 2 (binario)! Sorprendentemente, resulta que cada semana los estudiantes usan una base distinta. Para ayudarte a verificar rápidamente las respuestas de los estudiantes, vas a crear una herramienta que traduzca entre bases.

Instrucciones

Convierte una secuencia de dígitos en una base, que representa un número, en una secuencia de dígitos en otra base, que representa el mismo número.

Note

Intenta implementar la conversión por tu cuenta. No uses otra cosa que haga la conversión por ti.

Acerca de la notación posicional

En la notación posicional, un número en base b se puede entender como una combinación lineal de potencias de b.

El número 42, en base 10, significa:

(4 × 10¹) + (2 × 10⁰)

El número 101010, en base 2, significa:

(1 × 2⁵) + (0 × 2⁴) + (1 × 2³) + (0 × 2²) + (1 × 2¹) + (0 × 2⁰)

El número 1120, en base 3, significa:

(1 × 3³) + (1 × 3²) + (2 × 3¹) + (0 × 3⁰)

Sí. Esos tres números de arriba son exactamente el mismo. ¡Felicidades!

Registros

Registro Uso Tipo Descripción
$a0 entrada entero cantidad de dígitos de entrada
$a1 entrada entero base de los dígitos de entrada
$a2 entrada entero base de los dígitos de salida
$a3 entrada/salida dirección array de palabras de dígitos que se puede sobrescribir
$v0 salida entero cantidad de dígitos de salida, -1 si la entrada no es válida
$t0-9 temporal cualquiera se usa para almacenamiento temporal
Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
MIPS Assembly Exercism

¿Todo listo para empezar All Your Base?

Regístrate en Exercism para aprender y dominar MIPS Assembly con 70 ejercicios y mentoría humana real, todo gratis.