你剛被聘為數學教授。 你的第 1 週過得很順利,但到了第 2 週,事情有點不對勁。 問題在於,學生給的每個答案都是錯的! 幸好,你的數學能力讓你找出了問題所在:學生的答案_確實_是對的,只是全都是二進位(以 2 為底)! 令人驚訝的是,原來學生每週使用的進位制都不一樣。 為了幫你快速驗證學生的答案,你將會打造一個能在不同進位制之間轉換的工具。
將某個進位制中的一串數字(代表一個數)轉換成另一個進位制中的一串數字,代表同一個數。
試著自己實作這個轉換吧。 不要使用其他現成的工具來幫你完成轉換。
在位值記數法中,一個以b為底的數可以理解為b的各次方的線性組合。
數字 42,以十進位表示,代表:
(4 × 10¹) + (2 × 10⁰)
數字 101010,以二進位表示,代表:
(1 × 2⁵) + (0 × 2⁴) + (1 × 2³) + (0 × 2²) + (1 × 2¹) + (0 × 2⁰)
數字 1120,以三進位表示,代表:
(1 × 3³) + (1 × 3²) + (2 × 3¹) + (0 × 3⁰)
沒錯。上面這三個數字完全相同。恭喜!
| 暫存器 | 用途 | 型態 | 說明 |
|---|---|---|---|
$a0 |
輸入 | 整數 | 輸入位數 |
$a1 |
輸入 | 整數 | 輸入位數的基數 |
$a2 |
輸入 | 整數 | 輸出位數的基數 |
$a3 |
輸入/輸出 | 位址 | 可覆寫的數字字組陣列 |
$v0 |
輸出 | 整數 | 輸出位數;若輸入無效則為 -1 |
$t0-9 |
暫存 | 任意 | 用於暫存 |