二进制数加法
题目: 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)
输出结果:
![]()
博客围绕二进制数加法展开,给出两个二进制数a和b,需按二进制运算法则将它们相加,满2进位。分析指出从两数末尾依次相加,将结果放在对应位置。还提及代码实现,但未给出具体代码和输出结果。
452

被折叠的 条评论
为什么被折叠?



