Guest User

Untitled

a guest
May 26th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.37 KB | None | 0 0
  1. def bit_adder(self, number1, number2):
  2. num_a = self.num_to_list(number1)
  3. num_b = self.num_to_list(number2)
  4. maxx = max(len(num_a), len(num_b))
  5. minn = min(len(num_a), len(num_b))
  6.  
  7. if minn == len(num_b):
  8. smaller = num_b
  9. num_b = [0] * (maxx - minn)
  10. for i in smaller:
  11. num_b.append(i)
  12. else:
  13. smaller = num_a
  14. num_a = [0] * (maxx - minn)
  15. for i in smaller:
  16. num_a.append(i)
  17.  
  18. print " ",''.join(map(str, num_a))
  19. print "+",''.join(map(str, num_b))
  20. print '----------'
  21. carry_bit = 0
  22. answer = [0] * (maxx + 1)
  23.  
  24. for bit in xrange(maxx - 1, -1, -1):
  25. sum_bit = 0
  26. if num_a[bit] == num_b[bit]:
  27. if num_a[bit] == 1:
  28. if carry_bit == 0:
  29. carry_bit += 1
  30. else:
  31. sum_bit = 1
  32. else:
  33. if carry_bit == 1:
  34. sum_bit = 1
  35. carry_bit -= 1
  36.  
  37. else:
  38. if carry_bit == 1:
  39. sum_bit == 0
  40. else:
  41. sum_bit = 1
  42. answer[bit + 1] = sum_bit
  43.  
  44. if carry_bit == 1:
  45. answer[0] = 1
  46.  
  47. print ''.join(map(str, answer))
  48.  
  49.  
  50. def num_to_list(self, num):
  51. num = str(num)
  52. list_to_return = []
  53. for bit in range(len(num)):
  54. list_to_return.append(int(num[bit]))
  55. return list_to_return
Add Comment
Please, Sign In to add comment