#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main()
{
char a[10];
int i;
scanf("%s",&a);
int len=strlen(a);
long long int sum=0;
for(i=0;i<len;i++)
{
if(a[i]>='A'&&a[i]<='F')
{
a[i]=(a[i]-'A')+10+'0';就是这一行
}
if(a[i]>='a'&&a[i]<='f')
{
a[i]=(a[i]-'a')+10+'0';这一行
}
sum+=(a[i]-'0')*pow(16,len-i-1);和这一行
}
printf("%lld",sum);
return 0;
}
scanf是从键盘获取输入的字符,也就是ascii码,如果要计算的话,需要先将ascii码转换成数字,最简单的方法就是将字符的值减去一个字符0,
得出数字,比如ascii码0的实际值是48,ascii码1的实际值是49,则字符1减去字符0,得出就是数字1了
相加减会自动转换成ASCII码 , a[i] - '0', 意思就是 计算差值,假设a[i] = '5', 那么'5' - '0' = 5
最好能把这段代码要实现的功能写出来,一时半会看不出来也不好继续解答。