All Your Base

All Your Base

어려움

소개

방금 수학과 교수로 채용되었어요. 첫 주는 잘 지나갔는데, 둘째 주에는 뭔가 이상해요. 문제는 학생들이 내놓는 답이 전부 틀렸다는 거예요! 다행히도 수학 실력 덕분에 원인을 알아냈어요. 학생들의 답은 정말로 맞아요. 다만 모두 2진법(이진법)으로 되어 있을 뿐이에요! 놀랍게도, 매주 학생들은 서로 다른 진법을 사용한대요. 학생들의 답을 빠르게 확인할 수 있도록, 진법 사이를 변환해 주는 도구를 만들 거예요.

지침

한 진법에서 어떤 수를 나타내는 숫자열을, 같은 수를 나타내는 다른 진법의 숫자열로 변환해요.

Note

변환은 직접 구현해 봐요. 변환을 대신 해 주는 다른 것을 사용하지 마세요.

위치 기수법 알아보기

위치 기수법에서는 밑이 b인 수를 b의 거듭제곱들의 선형 결합으로 이해할 수 있어요.

42라는 수는 10진법에서 다음을 뜻해요:

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

101010이라는 수는 2진법에서 다음을 뜻해요:

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

1120이라는 수는 3진법에서 다음을 뜻해요:

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

네. 위의 세 수는 정확히 같은 수예요. 축하해요!

레지스터

레지스터 용도 타입 설명
$a0 입력 정수 입력 자릿수
$a1 입력 정수 입력 자릿수의 밑
$a2 입력 정수 출력 자릿수의 밑
$a3 입력/출력 주소 덮어쓸 수 있는 자릿수 워드 배열
$v0 출력 정수 출력 자릿수, 입력이 유효하지 않으면 -1
$t0-9 임시 임의 임시 저장에 사용
GitHub에서 편집 링크가 새 창이나 탭에서 열려요
MIPS Assembly Exercism

All Your Base 문제를 시작해 볼 준비가 됐나요?

Exercism에 가입하고 MIPS Assembly 트랙을 연습 문제 70개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.