二进制数加法
题目: a = '110110010101010010100010111111001' b = '1010011001011111101110100111' , a和b代表两个二进制数。我们按照二进制数运算法则 将a和b加起来 。。。也就是加起来等于2需要进位。。
分析:
这道题目非常简单,从a和b的末尾一次相加,等于2进位,否则将加的结果放在对应的位置。不做过多解释。 看代码实现。
代码实现:
def binary_add(a, b):
a = list(a)
b = list(b)
i = len(a) - 1
j = len(b) - 1
sum, temp = 0, 0
result = []
while i >= 0 or j >= 0:
sum = temp
if i >= 0:
sum += int(a[i])
i -= 1
if j >= 0:
sum += int(b[j])
j -= 1
result.insert(0, sum % 2)
temp = sum // 2
return result
if __name__ == '__main__':
a = '110110010101010010100010111111001'
b = '1010011001011111101110100111'
# a = '10101'
# b = '111'
result = binary_add(a, b)
print(result)
输出结果: