1
def add_bitwise(b1, b2):
'''Adds two binary numbers.'''
if b1 == '':
return b2
elif b2 == '':
return b1
else:
sum_rest = add_bitwise(b1[:-1],b2[:-1])
if b1[-1] == '0' and b2[-1] == '0':
return sum_rest + '0'
elif b1[-1] == '1' and b2[-1] == '0':
return sum_rest + '1'
elif b1[-1] == '0' and b2[-1] == '1':
return sum_rest + '1'
elif b1[-1] == '1' and b2[-1] == '1':
return sum_rest + add_bitwise(b2[:-1],'1') + '0'
所以我必須做出這個功能,它有兩個二進制數,並增加了他們。這必須使用遞歸完成,並且不能將數字轉換爲十進制,添加,然後轉換回二進制。所以我的基本情況說,如果一個二進制數字是空的,則返回另一個,反之亦然。然後對於遞歸調用,如果添加了兩個零,它將返回0和遞歸調用。如果添加0和1,則會添加一個和遞歸調用。
現在,這裏是我卡住的地方。兩個使0,然後你必須攜帶1到下一方,但我不知道如何在第二次遞歸調用內做到這一點。 Sum rest是正常的遞歸調用,然後是遞歸調用來傳遞數字,然後是0.該函數必須按設計保持,但遞歸調用需要固定。
正是我在找的東西!謝謝! – jmcnuggsmagic13