# include // // Program 8.14, Stephen Kochan, Programming in C. // int convertedNumber[64]; long int numberToConvert; int base; int digit = 0; int main ( void ); void getNumberAndBase ( void ); void convertNumber ( void ); void displayConvertedNumber ( void ); int main ( void ) { getNumberAndBase ( ); convertNumber ( ); displayConvertedNumber ( ); return 0; } void getNumberAndBase ( void ) { printf ( "Number to be converted?: " ); scanf ( "%li", &numberToConvert ); printf ( "Base? " ); scanf ( "%i", &base ); if ( base < 2 || 16 < base ) { printf ( "Bad base - must be between 2 and 16.\n" ); base = 10; } return; } void convertNumber ( void ) { do { convertedNumber[digit] = numberToConvert % base; digit = digit + 1; numberToConvert = numberToConvert / base; } while ( numberToConvert != 0 ); return; } void displayConvertedNumber ( void ) { const char baseDigits[16] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; int nextDigit; printf ( "Converted number = " ); for ( digit = digit - 1; 0 <= digit; digit = digit - 1 ) { nextDigit = convertedNumber[digit]; printf ( "%c", baseDigits[nextDigit] ); } printf ( "\n" ); return; }