两个多字节二进制数求和程序
时间: 2023-05-25 16:04:19 浏览: 96
以下是一个多字节二进制数求和程序的示例:
```c++
#include <iostream>
#include <string>
using namespace std;
string addBinary(string a, string b) {
string result = ""; // 存储结果
int carry = 0; // 进位
int i = a.size() - 1, j = b.size() - 1;
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 = "111001", b = "101011";
cout << "a: " << a << endl;
cout << "b: " << b << endl;
cout << "sum: " << addBinary(a, b) << endl;
return 0;
}
```
在这个程序中,我们定义了一个 `addBinary()` 函数,该函数接受两个二进制字符串作为参数,并返回它们的和作为二进制字符串。在函数中,我们使用了一个 `result` 字符串存储结果,并使用一个 `carry` 变量来跟踪进位。
然后,我们从字符串的末尾开始遍历,同时将相应的二进制数字相加,处理进位,并将结果添加到 `result` 字符串中。
最后,我们返回 `result` 字符串作为结果。
在 `main()` 函数中,我们定义了两个二进制字符串 `a` 和 `b`,并调用 `addBinary()` 函数来计算它们的和。