Skip to content

Instantly share code, notes, and snippets.

@gogsbread
Created January 5, 2013 04:48
Show Gist options
  • Save gogsbread/4459816 to your computer and use it in GitHub Desktop.
Save gogsbread/4459816 to your computer and use it in GitHub Desktop.
Practical algorithms - Binary adder
def binaryAdder(arrayA,arrayB):
arrayC = [0] * (len(arrayA) + 1)
carry = 0
for i in range(len(arrayA)-1,-1,-1):
eA = arrayA[i]
eB = arrayB[i]
if eA == eB == 1:
if carry == 1:
arrayC[i+1] = 1
else:
carry = 1
arrayC[i+1] = 0
elif (eA == 0 and eB == 1) or (eA == 1 and eB == 0):
if carry == 1:
arrayC[i+1] = 0
carry = 0
else:
arrayC[i+1] = 1
else:
arrayC[i+1] = carry
carry = 0
#print "{0},{1},{2}".format(eA,eB,arrayC[i+1])
arrayC[0] = carry
return arrayC
if __name__ == '__main__':
print binaryAdder([1,0,1],[1,0,1])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment