八進位

八進位

簡單

說明

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

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

注意

  • 轉換要自己實作,不要借助其他工具替你完成。
  • 把無效的輸入視為八進位的 0。

關於八進位(Base-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

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

所以:

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

準備好開始 八進位 了嗎?

註冊 Exercism,透過 26 個概念158 個練習 和真人引導來學習並精通 Java,全部免費。