/******************* 将一个n(n<16)进制串转换化为十进制数 ********************/ #include<stdio.h> #include<string.h> #include<stdlib.h> #define MAX 32 char tmp[MAX]; int change(char* str, int base); int main(int argc, char* argv[]) { int base = 0; scanf("%s", tmp); scanf("%d",&base); printf("%d", change(tmp,base)); return 0; } int change(char* str, int base){ int len = strlen(str); int m = 0; int i = 0; int k; for(i= 0; i<len; i++) { m *= base ; if(str[i]>='0'&&str[i]<='9') { k = str[i] -'0'; } else if(str[i]>='a') { k = str[i] - 'a' + 10; } else if(str[i]>='A') { k = str[i] - 'A' + 10; } if(k>= base) abort(); m += k; } return m; }