题解 | #进制转换#
进制转换
https://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6
#include <math.h>
#include <stdio.h>
#include <string.h>
//转换的话直接用权重处理即可,31次方的话,减去前面的Ox只需要使用8位就可以包含,所以我选择是str【10】,C小白,可能有不对的地方欢迎指正
int main() {
char str[10]={0};
scanf("%s",&str);
int len=strlen(str);
int sum=0;
for (int i=2; i<len ; i++) {
int temp=0;
switch (str[i])
{
case 'A':temp=10;break;
case 'B':temp=11;break;
case 'C':temp=12;break;
case 'D':temp=13;break;
case 'E':temp=14;break;
case 'F':temp=15;break;
default:temp=str[i]-'0';break;
}
sum=sum+temp*pow(16, len-i-1);
}
printf("%d\n",sum);
return 0;
}