题解 | #进制转换#
进制转换
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); }