求个详细的解释
#include <stdio.h>#include<iostream>
using namespace std;
#define ASCII 48
int main()
{
int i,j,k,m=0,p;
char a[1001],b[1001];
int c[1001];
for(p=0;p<1001;p++)
{
c[p]=0;
a[p]=' ';
b[p]=' ';
}
while(cin>>a>>b)
{
i=0;
j=0;
k=0;
while(a[i]!=' ')
{
i++;
}
i=i-2;
while(b[j]!=' ')
{
j++;
}
j=j-2;
while(i>=0&&j>=0)
{
if(c[k]+a[i]-ASCII+b[j]-ASCII>9)
{
c[k]=(c[k]+a[i]+b[j]-2*ASCII)%10;
c[k+1]++;
}
else
c[k]+=a[i]+b[j]-2*ASCII;
k++;
i--;
j--;
}
while(i>=0)
{
if(c[k]+a[i]-ASCII>9)
{
c[k]=(c[k]+a[i]+b[j]-2*ASCII)%10;
c[k+1]++;
}
else
c[k]+=a[i]-ASCII;
k++;
i--;
}
while(j>=0)
{
if(c[k]+b[j]-ASCII>9)
{
c[k]=(c[k]+b[j]-ASCII)%10;
c[k+1]++;
}
else
c[k]+=b[j]-ASCII;
k++;
j--;
}
printf("the result is :\n");
printf("%s + %s =",a,b);
if(c[k]==0) k--;
while(k>=0)
{
printf("%d",c[k--]);
}
printf("\n");
for(p=0;p<1001;p++)
{
c[p]=0;
a[p]=' ';
b[p]=' ';
}
}
return 0;
}
文章有点长了,见谅哈。这个是我找到的一个关于无穷大的数相加的一个代码,但是我确实是不知道这些是什么意思。大数相加用ASCII的原理是什么。求人给这些代码来个很详细的解释。顺便说哈,为什么要这么做?