ans[i+j+1] += (a[i]-48)*(b[j]-48);这里的减48是什么意思?

#include<stdio.h>#include<string.h>#include<iostream>usingnamespacestd;intmain(){char... #include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
int main()
{
char a[8],b[8];
char ans[16];
int len1,len2;
scanf("%s%s",a,b);
len1 = strlen(a);
len2 = strlen(b);
memset(ans,0,sizeof(ans));
for(int i=len1-1; i>=0; i--)
for(int j=len2-1; j>=0; j--)
{
ans[i+j+1] += (a[i]-48)*(b[j]-48);
if (ans[i+j+1]>9)
{
ans[i+j] += ans[i+j+1]/10;
ans[i+j+1] %= 10;
}
}
if ((len1==1 && a[0]=='0') || (len2==1 && b[0]=='0'))
printf("0");
/*
if(0 == mulNum[1] ) //说明整体为0
cout<<"0"<<endl;
*/
else
{
if (ans[0]!=0)
printf("%d",ans[0]);
for(int i=1; i<len1+len2; i++)
printf("%d",ans[i]);
}
printf("\n");
return 0;
}
展开
 我来答
naruto的海角
2019-03-03 · 超过24用户采纳过TA的回答
知道答主
回答量:49
采纳率:73%
帮助的人:25.9万
展开全部

a,b里面存储的都是字母,你看一下ASCII表,



字符”a”对应的是97,97-48=49,直接对应的是数值1,所以减48起到的是一种将原字母编码的一种过程

cdyzxy
2019-03-03 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:85%
帮助的人:4577万
展开全部
也可以写成这样,便于理解:ans[i+j+1]+=(a[i]-'0')*(b[j]-'0');
对于数字字符,减去0对应的ASCII码可获取对应的数字。字符'0'的ascii码为48
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式