二进制大整数加法c语言代码
时间: 2023-09-06 13:12:47 浏览: 100
大整数加法C语言程序
4星 · 用户满意度95%
以下是一个简单的二进制大整数加法的 C 语言代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_SIZE 1000
char* add(char* a, char* b);
int main() {
char a[MAX_SIZE], b[MAX_SIZE];
printf("Enter two binary numbers: \n");
scanf("%s %s", a, b);
printf("Sum = %s\n", add(a, b));
return 0;
}
char* add(char* a, char* b) {
static char sum[MAX_SIZE];
int i = strlen(a) - 1, j = strlen(b) - 1, carry = 0, k = 0;
while (i >= 0 || j >= 0 || carry) {
int x = i >= 0 ? a[i--] - '0' : 0;
int y = j >= 0 ? b[j--] - '0' : 0;
sum[k++] = (x + y + carry) % 2 + '0';
carry = (x + y + carry) / 2;
}
sum[k] = '\0';
strrev(sum);
return sum;
}
```
该代码使用了一个名为 `add` 的函数来执行二进制大整数加法。该函数接受两个参数:两个以字符串形式表示的二进制数。函数返回一个指向表示两个二进制数之和的字符串的指针。在函数内部,使用了 `strrev` 函数来将结果反转回正确的顺序。
阅读全文