蓝桥杯前三次测试没问题,但一测试FE65CDBA这组数输出结果就变成了负数了,本人能力有限,求助大佬解答
#include<stdio.h>
#include<string.h>
void s(char a[],int b[],int n)
{int i;
for(i=0;i<n;i++)
if(a[i]>=65)
b[i]=a[i]-55;
else b[i]=a[i]-48;
}
int main()
{
int b[8],c[32],i,j=1,k,l=0;
char a[9];
scanf("%s",a);
s(a,b,strlen(a));
for(i=strlen(a)-1;i>=0;i--)
for(k=0;k<4;k++)
{
l+=b[i]%2*j;
j*=2;
b[i]/=2;
}
printf("%d",l);
return 0;
}