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