2016-12-15 34 views
0

有誰知道這樣對我的節目看?Python程序添加二進制酷似人類

我需要一些幫助,並希望看到一個寫程序的例子。

它只需要添加二進制數字完全像人類一樣。因此,我們在紙上添加輸入的數字,並使用攜帶等。

+0

問題要求我們推薦或找到一本書,工具,軟件庫,教程或其他非本地資源,因爲它們傾向於吸引自以爲是的答案和垃圾郵件,所以不適合堆棧溢出。相反,請描述問題以及到目前爲止解決問題所做的工作。 – Lexi

+0

您是否希望大量使用python標準庫或ad-hock解決方案的習慣解決方案讓初學者更容易理解,因爲它不需要查找文檔? –

回答

0

要創建一個二元變量,你會做前綴,它0B,像這樣。 0b01101x = 0b01101
要他們加在一起你爾德一樣做任何其他的變種。

a = 0b01101 
b = 0b10100 

print(a + b) # etc 

您也可以使用功能數字的二進制表示。

>>> bin(2) 
0b10 
+0

在Python中沒有二進制變量甚至二進制類型(除非你計數bool)。你在做什麼是使用整數文字的二進制形式創建兩個常規整數。 –

+0

另外:OP沒有要求告訴他如何在python中添加兩個常規整數,也沒有要求如何將一個整數轉換爲基2字符串表示,他要求一個程序**說明**二元加法運算。 –

0

下面是一個廣告跗解決問題的方法(上python3測試; execute online

def add(num1, num2): 
    carry = 0 
    result = [0] * (1 + max(len(num1), len(num2))) 
    for i in range(len(result)): 
     if 0 <= i < len(num1): 
      digit1 = num1[-i - 1] 
     else: 
      digit1 = 0 
     if 0 <= i < len(num2): 
      digit2 = num2[-i - 1] 
     else: 
      digit2 = 0 
     result[-i - 1] = (digit1 + digit2 + carry) % 2 
     if digit1 + digit2 + carry > 1: 
      carry = 1 
     else: 
      carry = 0 
    return result 

該函數的整數,只能是0或1。例如兩個列表:

add([1, 0, 1], [1, 1, 1]) 

添加數字5(101二進制)和7(111二進制)。可以通過添加刪除前導零的代碼來改進。您可能還需要添加代碼才能很好地輸入和輸出二進制數字。

注意:這段代碼可以做得更加簡潔,但是理解它會需要更多的python知識。我可能會添加更簡潔的後者。