#include #include #include char base_digits[16] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; // Function to convert number from one base to another void base2base(const char *number, int inputBase, int outputBase) { printf("Input number: %s in base %d\n", number, inputBase); int length = strlen(number); int decimal = 0; // Convert input number to decimal for (int i = 0; i < length; i++) { int digit = number[i] - '0'; if (number[i] >= 'A' && number[i] <= 'F') { digit = number[i] - 'A' + 10; } if (digit < 0 || digit >= inputBase) { printf("Invalid input for the specified base %d.\n", inputBase); return; } decimal = decimal * inputBase + digit; } // Convert decimal to the output base char convertedNumber[32]; int index = 0; while (decimal > 0) { convertedNumber[index++] = base_digits[decimal % outputBase]; decimal /= outputBase; } convertedNumber[index] = '\0'; // Reverse the string to get the converted number length = strlen(convertedNumber); for (int i = 0; i < length / 2; i++) { char temp = convertedNumber[i]; convertedNumber[i] = convertedNumber[length - i - 1]; convertedNumber[length - i - 1] = temp; } printf("Converted number: %s from base %d to base %d.\n\n", convertedNumber, inputBase, outputBase); } int main() { base2base("10", 10, 2); // Example: Convert '10' (base 10) to base 2 base2base("1111", 2, 10); // Example: Convert '11111' (base 2) to base 10 base2base("A", 16, 10); // Example: Convert '11111' (base 2) to base 10 base2base("1A", 16, 10); // Example: Convert '11111' (base 2) to base 10 base2base("AAAA", 16, 10); // Example: Convert '11111' (base 2) to base 10 return 0; }