lavaboom
8/20/2014 - 3:38 PM

Binary sum (CLRS exercise 2.1.4)

Binary sum (CLRS exercise 2.1.4)

def binary_sum(a, b):
    '''
    Sum 2 lists of bits of length n. Result a list of length n+1 
    '''
    result = []
    carry = 0
    
    for x in zip(reversed(a), reversed(b)):
        c = (sum(x) + carry) % 2
        carry = int((sum(x) + carry) / 2)
        result.extend([c])
    result.extend([carry])
    
    return list(reversed(result))

a = [1,0,0,1]
b = [0,1,1,1]

print(binary_sum(a, b))