给你两个二进制字符串 和 ,以二进制字符串的形式返回它们的和。ab
时间: 2023-11-05 15:09:08 浏览: 161
进制转换--
可以使用位运算来实现二进制字符串的加法。
首先将两个二进制字符串补齐到相同的长度,然后从低位到高位逐位相加,同时考虑进位。具体实现如下:
```python
def addBinary(a: str, b: str) -> str:
# 补齐到相同的长度
n = max(len(a), len(b))
a = a.zfill(n)
b = b.zfill(n)
# 从低位到高位逐位相加
carry = 0
ans = []
for i in range(n-1, -1, -1):
if a[i] == '1':
carry += 1
if b[i] == '1':
carry += 1
if carry % 2 == 1:
ans.append('1')
else:
ans.append('0')
carry //= 2
# 处理最高位的进位
if carry == 1:
ans.append('1')
ans.reverse()
return ''.join(ans)
```
例如,对于输入的两个二进制字符串 a = "1010" 和 b = "1011",输出的二进制字符串为 "10101",即十进制数的 10 + 11 = 21 的二进制表示。
阅读全文