All Your Base

All Your Base

Difícil

Introdução

Acabaste de ser contratado como professor de matemática. A tua primeira semana correu bem, mas há algo de estranho na segunda. O problema é que todas as respostas dadas pelos teus alunos estão erradas! Felizmente, os teus conhecimentos de matemática permitiram-te identificar o problema: as respostas dos alunos estão corretas, mas estão todas na base 2 (binário)! Curiosamente, verifica-se que, a cada semana, os alunos usam uma base diferente. Para te ajudar a verificar rapidamente as respostas dos alunos, vais construir uma ferramenta que converte entre bases.

Instruções

Converte uma sequência de algarismos numa base, que representa um número, numa sequência de algarismos noutra base, que representa o mesmo número.

Note

Tenta ser tu a implementar a conversão. Não uses outra coisa para fazer a conversão por ti.

Sobre a Notação Posicional

Na notação posicional, um número na base b pode ser entendido como uma combinação linear de potências de b.

O número 42, na base 10, significa:

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

O número 101010, na base 2, significa:

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

O número 1120, na base 3, significa:

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

Sim. Aqueles três números acima são exatamente o mesmo número. Parabéns!

Registos

Registo Utilização Tipo Descrição
$a0 valor de entrada inteiro número de algarismos de entrada
$a1 valor de entrada inteiro base dos algarismos de entrada
$a2 valor de entrada inteiro base dos algarismos de saída
$a3 valor de entrada/saída endereço array de palavras de algarismos que pode ser sobrescrito
$v0 valor de saída inteiro número de algarismos de saída, -1 se o valor de entrada for inválido
$t0-9 temporário qualquer usado para armazenamento temporário
Editar via GitHub A ligação abre numa nova janela ou separador
MIPS Assembly Exercism

Estás pronto para começar All Your Base?

Inscreve-te no Exercism para aprenderes e dominares MIPS Assembly com 70 exercícios, e mentoria humana real, tudo grátis.