Ai in
acest articol mai jos numere mari, in baza 10. Poti implementa suma a doua numere mari, doar ca ele sunt in baza 2, si nu baza 10. Numarul trebuie citit in felul urmator : in A[0] ai numarul de cifre, iar de la A[1] in colo o sa ai numarul cititi in ordine inversa. Spre exemplu, numarul 12345 o sa-l ai asa : A[0] = 5 (nr. cifre), A[1] = 5, A[2] = 4 .... A[5] = 1 [asa orientativ, am vazut ca si tu ai facut cam acelasi lucru].
void add(int A[], int B[]) {
int i, t = 0;
for (i=1; i<=A[0] || i<=B[0] || t; i++, t /= 2)
A[i] = (t += A[i] + B[i]) % 2;
A[0] = i - 1;
}
Iar de afisat afisezi asa :
void afis (int A[]) {
for (int i = A[0]; i > 0; --i)
printf ("%d", A[i]);
}