Wandle eine Trinärzahl, die als String dargestellt wird (z. B. '102012'), nach den Grundprinzipien in ihren Dezimalwert um.
Das Programm soll Strings, die eine ungültige Trinärzahl angeben, als Wert 0 betrachten.
Trinärzahlen enthalten drei Symbole: 0, 1 und 2.
Die letzte Stelle einer Trinärzahl ist die Einerstelle. Die vorletzte Stelle ist die Dreierstelle, die drittletzte die Neunerstelle, und so weiter.
# "102012"
1 0 2 0 1 2 # the number
1*3^5 + 0*3^4 + 2*3^3 + 0*3^2 + 1*3^1 + 2*3^0 # the value
243 + 0 + 54 + 0 + 3 + 2 = 302
Wenn deine Programmiersprache eine Methode in der Standardbibliothek für diese Umwandlung bietet, tu so, als gäbe es sie nicht, und implementiere die Umwandlung selbst.
| Register | Verwendung | Typ | Beschreibung |
|---|---|---|---|
$a0 |
Eingabe | Adresse | nullterminierter String aus Ternärzeichen |
$v0 |
Ausgabe | Ganzzahl | Dezimalwert des Eingabe-Strings |
$t0-9 |
temporär | beliebig | wird für die temporäre Speicherung verwendet |
Melde dich bei Exercism an, um MIPS Assembly mit 70 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.