C++给你两个二进制字符串 和 ,以二进制字符串的形式返回它们的和。
时间: 2023-11-05 10:09:08 浏览: 93
可以使用位运算来实现二进制字符串相加的功能。
首先,需要将两个二进制字符串转换为对应的十进制数,然后执行加法运算。加法运算完成后,将结果转换回二进制字符串即可。
以下是代码实现:
```c++
#include <iostream>
#include <string>
using namespace std;
string addBinary(string a, string b) {
int carry = 0;
int i = a.size() - 1;
int j = b.size() - 1;
string result = "";
while (i >= 0 || j >= 0 || carry == 1) {
int sum = carry;
if (i >= 0) {
sum += a[i] - '0';
i--;
}
if (j >= 0) {
sum += b[j] - '0';
j--;
}
result = to_string(sum % 2) + result;
carry = sum / 2;
}
return result;
}
int main() {
string a = "1010";
string b = "1011";
string result = addBinary(a, b);
cout << "Result: " << result << endl;
return 0;
}
```
在上面的代码中,我们使用了 `carry` 来表示进位,然后在循环中逐位计算二进制字符串的和,并将结果存储在 `result` 中。最后返回 `result` 即可。
上述代码的输出结果为:
```
Result: 10101
```
阅读全文