Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def bit_adder(self, number1, number2):
- num_a = self.num_to_list(number1)
- num_b = self.num_to_list(number2)
- maxx = max(len(num_a), len(num_b))
- minn = min(len(num_a), len(num_b))
- if minn == len(num_b):
- smaller = num_b
- num_b = [0] * (maxx - minn)
- for i in smaller:
- num_b.append(i)
- else:
- smaller = num_a
- num_a = [0] * (maxx - minn)
- for i in smaller:
- num_a.append(i)
- print " ",''.join(map(str, num_a))
- print "+",''.join(map(str, num_b))
- print '----------'
- carry_bit = 0
- answer = [0] * (maxx + 1)
- for bit in xrange(maxx - 1, -1, -1):
- sum_bit = 0
- if num_a[bit] == num_b[bit]:
- if num_a[bit] == 1:
- if carry_bit == 0:
- carry_bit += 1
- else:
- sum_bit = 1
- else:
- if carry_bit == 1:
- sum_bit = 1
- carry_bit -= 1
- else:
- if carry_bit == 1:
- sum_bit == 0
- else:
- sum_bit = 1
- answer[bit + 1] = sum_bit
- if carry_bit == 1:
- answer[0] = 1
- print ''.join(map(str, answer))
- def num_to_list(self, num):
- num = str(num)
- list_to_return = []
- for bit in range(len(num)):
- list_to_return.append(int(num[bit]))
- return list_to_return
Add Comment
Please, Sign In to add comment