给定两个 01 字符串 a 和 b ,请计算它们的和,并以二进制字符串的形式输出。的代码
时间: 2024-09-17 18:04:22 浏览: 61
BinaryStringCalculator:两个二进制字符串相加的算法
这是一个简单的编程问题,可以使用 Python 来解决,这里是一个基本的解决方案:
```python
def add_binary_strings(a, b):
# 初始化结果字符串,长度为两输入字符串长度之和加一
result = ["0"] * (len(a) + len(b))
# 遍历字符串,从右向左逐位相加
i, j = len(a) - 1, len(b) - 1
carry = 0
while i >= 0 or j >= 0:
# 获取当前位置的数字
x = int(a[i]) if i >= 0 else 0
y = int(b[j]) if j >= 0 else 0
# 相加并考虑进位
sum_value = x + y + carry
carry = sum_value // 2
result[-(i + 1)] = str(sum_value % 2)
# 移动指针
i, j = i - 1, j - 1
# 如果最高位有进位,则添加到结果前面
if carry == 1:
result.insert(0, "1")
# 返回结果字符串,去掉开头的"0"
return ''.join(result)[1:]
# 测试示例
a = "1101"
b = "1010"
print(add_binary_strings(a, b)) # 输出: "10001"
```
这个代码首先初始化一个足够长的结果字符串,然后从最右边的位开始,逐位相加并处理进位,最后返回结果字符串。
阅读全文