#include #include "vector.h" #include "CPstring.h" // file: convert2.cc // author Dietolf Ramm; date: 11/10/96 // change number base using recursion. string Conv(int n, int base, const Vector & table) // precondiont: n a non-negative integer, 1 < base < 37 // postcondition: returns string of number in requested base { if (n < base) { return table[n]; } return Conv(n/base, base, table)+table[n%base]; } int main() { Vector table(36); string init = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; for (int k=0; k<36; k++) table[k] = init.substr(k,1); int base, n; cout << "Enter base (2...36) or 0 to quit: "; cin >> base; while ( base > 1) { cout << "Enter positive integer: "; cin >> n; cout << n << " converts to " << Conv(n, base, table) << " base " << base << endl; cout << "Enter base (2...36) or 0 to quit: "; cin >> base; } return 0; } Sample output: convert2 Enter base (2...36) or 0 to quit: 10 Enter positive integer: 321 321 converts to 321 base 10 Enter base (2...36) or 0 to quit: 8 Enter positive integer: 321 321 converts to 501 base 8 Enter base (2...36) or 0 to quit: 16 Enter positive integer: 256 256 converts to 100 base 16 Enter base (2...36) or 0 to quit: 16 Enter positive integer: 255 255 converts to FF base 16 Enter base (2...36) or 0 to quit: 2 Enter positive integer: 255 255 converts to 11111111 base 2 Enter base (2...36) or 0 to quit: 32 Enter positive integer: 255 255 converts to 7V base 32 Enter base (2...36) or 0 to quit: