Python程式:新增兩個八進位制數


八進位制數是用基數為8的數字系統表示的數字。它使用0到7的數字。八進位制數通常用於計算機科學和數字系統中,尤其是在處理三位元組時。

在八進位制表示法中,每個數字代表8的遞增冪。最右邊的數字代表8^0 (1),下一個數字代表8^1 (8),下一個數字代表8^2 (64),依此類推。透過組合這些數字,八進位制數可以表示正整數。例如,八進位制數52表示的十進位制數如下。

(5 * 8^1) + (2 * 8^0) = (5 * 8) + 2 = 40 + 2 = 42

手動新增八進位制數

現在讓我們考慮兩個八進位制數4568和1238,以下是加法過程。

4 5 6
1 2 3
--------
6 0 1
--------

加法運算後,結果將是6018。同樣,我們可以使用不同的方法實現Python程式碼來新增兩個八進位制數。讓我們詳細瞭解每種方法。

使用手動方法

在這種方法中,我們透過考慮和處理可能出現的進位,使用Python程式碼實現手動新增兩個八進位制數的方法。以下是可作為參考的程式碼。

示例

def add_octal(octal1, octal2):
   max_len = max(len(octal1), len(octal2))
   octal1 = octal1.zfill(max_len)
   octal2 = octal2.zfill(max_len)
   result = []
   carry = 0
   for i in range(max_len - 1, -1, -1):
      digit1 = int(octal1[i])
      digit2 = int(octal2[i])
      current_sum = digit1 + digit2 + carry
      result.append(str(current_sum % 8))
      carry = current_sum // 8
   if carry:
      result.append(str(carry))
   octal_result = ''.join(result[::-1])
   return octal_result
print(add_octal("456","123"))

輸出

601

使用int()和oct()函式

在Python中,我們有int()oct()函式,分別用於將八進位制數轉換為整數以及將整數轉換為八進位制數。

示例

在這個例子中,我們使用int()函式將八進位制數轉換為十進位制數,進行加法運算,然後使用oct()函式將結果轉換回八進位制數。

def add_octal(oct1, oct2):
   num1 = int(oct1, 8)
   num2 = int(oct2, 8)
   result = num1 + num2
   octal_result = oct(result)[2:]
   return octal_result
res = add_octal("456","123")
print(res)

輸出

601

使用sum()函式

Python中的sum()函式通常用於查詢迭代物件(如列表、元組等)中元素的總和。但是,我們可以利用它的功能以及生成器表示式來執行八進位制加法。

示例

在這個例子中,為了執行八進位制加法,我們需要使用sum()函式中的生成器表示式將八進位制的每個數字轉換為其十進位制等價物。

生成器表示式迭代八進位制數中的每個數字,將其轉換為整數,並將其乘以8的相應冪,並且使用enumerate()函式來獲取八進位制數中每個數字的位置(索引)。最後,sum()函式計算所有這些十進位制值的總和。

def add_octal(octal1, octal2):
   result = sum(int(digit) * 8**i for i, digit in enumerate(octal1[::-1])) + sum(int(digit) * 8**i for i, digit in enumerate(octal2[::-1]))
   octal_result = oct(result)[2:]
   return octal_result
print(add_octal("456","123"))

輸出

601

更新於:2023年8月2日

199 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.