Nemrég felvettek matematikaprofesszornak. Az első heted jól telt, de a második héten valami nem stimmel. A probléma az, hogy a diákjaid minden válasza hibás! Szerencsére a matematikai képességeid segítségével azonosítani tudtad a problémát: a diákok válaszai helyesek, de mind bináris (2-es) számrendszerben vannak! Meglepő módon kiderült, hogy a diákok minden héten más számrendszert használnak. Hogy gyorsan ellenőrizni tudd a diákok válaszait, egy számrendszerek közötti átváltó eszközt fogsz építeni.
Alakítsd át az egyik számrendszerben lévő számjegysorozatot, amely egy számot jelöl, egy másik számrendszerben lévő számjegysorozattá, amely ugyanazt a számot jelöli.
Próbáld meg magad megvalósítani az átalakítást. Ne használj mást, ami helyetted elvégzi az átalakítást.
A helyiértékes jelölésben egy b alapú szám felfogható b hatványainak lineáris kombinációjaként.
A 42-es szám a tízes számrendszerben ezt jelenti:
(4 × 10¹) + (2 × 10⁰)
Az 101010-es szám a kettes számrendszerben ezt jelenti:
(1 × 2⁵) + (0 × 2⁴) + (1 × 2³) + (0 × 2²) + (1 × 2¹) + (0 × 2⁰)
Az 1120-as szám a hármas számrendszerben ezt jelenti:
(1 × 3³) + (1 × 3²) + (2 × 3¹) + (0 × 3⁰)
Igen. Ez a három szám pontosan ugyanaz. Gratulálok!
| Regiszter | Használat | Típus | Leírás |
|---|---|---|---|
$a0 |
bemenet | egész szám | a bemeneti számjegyek száma |
$a1 |
bemenet | egész szám | a bemeneti számjegyek alapja |
$a2 |
bemenet | egész szám | a kimeneti számjegyek alapja |
$a3 |
bemenet/kimenet | cím | felülírható tömb, amely számjegyszavakat tartalmaz |
$v0 |
kimenet | egész szám | a kimeneti számjegyek száma, érvénytelen bemenet esetén -1 |
$t0-9 |
ideiglenes | bármilyen | ideiglenes tárolásra használatos |
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) MIPS Assembly nyelvet 70 feladat segítségével, valódi emberi mentorálással, mindez ingyen.