题解 | #进制转换#
进制转换
https://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6
#include <stdio.h>
#include<string.h>
#include<math.h>
int main() {
char a[10000];
gets(a);
int len=strlen(a);
int convert=0;//最后的进制转换结果
int temp=0;//16的幂的中间变量
for(int i=len-1;i>=2;i--)
{
temp=pow(16,len-1-i);
if(a[i]>='0' && a[i]<='9') //0的ascii码是48
{
a[i] = a[i]-48;
}
else if(a[i]>='A' && a[i]<='F')//A的ascii码是65
{
a[i] = a[i]-65+10;
}
else if(a[i]>='a' && a[i]<='f')//a的ascii码是97
{
a[i] = a[i]-97+10;
}
convert+=a[i]*temp;
}
printf("%d",convert);
}
