#include <stdio.h> #include <string.h> // To return value for a character. 10 is returned for 'A' int val(char c) { if (c >= '0' && c <= '9') return (int)c - '0'; else return (int)c - 'A' + 10; } // Function to convert a number from given base 'q' to decimal int q2num(char num_q[], int q) { int len = strlen(num_q); int power = 1; // Initialize power of base int num = 0; // Initialize result int i; // Decimal equivalent is str[len-1]*1 + // str[len-2]*base + str[len-3]*(base^2) + ... for (i = len - 1; i >= 0; i--) { // A digit in input number must be // less than number's base if (val(num_q[i]) >= q) { printf("Invalid Number"); return -1; } num += val(num_q[i]) * power; power = power * q; } return num; } // Driver program int main() { int base = 16; char temp[3]="11A"; printf("%d",q2num(temp,base)); return 0; }