Code:Wie führe ich eine Ziffer, wenn binäre Addition durchgeführt wird?
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'
Also muss ich diese Funktion machen, die zwei Binärzahlen nimmt und fügt sie. Dies muss unter Verwendung der Rekursion geschehen und kann die Zahlen nicht in Dezimalzahlen umwandeln, addieren und dann zurück in Binärwerte umwandeln. Meine Basisfälle sagen also, wenn eine Binärzahl leer ist, gebe die andere zurück und umgekehrt. Dann werden für meinen rekursiven Aufruf, wenn zwei Nullen hinzugefügt werden, 0 und der rekursive Aufruf zurückgegeben. Wenn eine 0 und eine 1 hinzugefügt werden, fügt es einen und einen rekursiven Aufruf hinzu.
Jetzt ist hier, wo ich feststecke. Zwei Einsen machen 0 und dann muss man eine 1 zur nächsten Seite tragen, aber ich kann nicht herausfinden, wie man das innerhalb des zweiten rekursiven Aufrufs macht. Sum rest ist der normale rekursive Aufruf, dann folgt der rekursive Aufruf, um die Ziffer zu tragen, und dann die 0. Die Funktion muss wie vorgesehen bleiben, aber der rekursive Aufruf muss fixiert sein.
Genau das, was ich gesucht habe! Vielen Dank! – jmcnuggsmagic13