八進位

八進位

簡單

說明

將以字串表示的八進位數字(例如 '1735263')轉換成對應的十進位數字,而且要從基本原理著手(也就是說,不行,你不能用內建或外部函式庫來完成轉換)。

實作八進位到十進位的轉換。 給定一個八進位的輸入字串,你的程式應該產生十進位的輸出。

注意事項

  • 轉換請自己實作。 不要用其他東西代替你執行轉換。
  • 把無效的輸入視為八進位的 0。

關於八進位(底數 8)

十進位是底數為 10 的系統。

以 10 進位表示的數字 233,可以理解成 10 的次方的線性組合:

  • 最右邊的位數乘以 10^0 = 1
  • 接下來一位乘以 10^1 = 10
  • ...
  • 第 n 位數字乘以 10^(n-1)。
  • 最後把這些值全部加起來。

所以:

   233 # decimal
 = 2*10^2 + 3*10^1 + 3*10^0
 = 2*100  + 3*10   + 3*1

八進位也類似,只是用的不是 10 的次方,而是 8 的次方。

所以:

   233 # octal
 = 2*8^2 + 3*8^1 + 3*8^0
 = 2*64  + 3*8   + 3*1
 = 128   + 24    + 3
 = 155
透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Scheme Exercism

準備好開始 八進位 了嗎?

註冊 Exercism,透過 39 個練習 和真人引導來學習並精通 Scheme,全部免費。