求一个能进制转换的程序
要求要输入各种进制的数,输出要求进制的数希望大家帮忙想想
// 将一个N进制数转换成M进制数 #include <iostream> #include <vector> using namespace std; void convert(int x, int n, int m) { vector<int> vi; int y; while(x) { y = x % m; vi.push_back(y); x /= m; } vector<int>::reverse_iterator rit = vi.rbegin(); for( ; rit!=vi.rend(); rit++) { if( *rit >= 10 ) { char temp = *rit - 10 + 'A'; cout << temp; } else { cout << *rit; } } } void convert(const char *str, int n, int m) { if(*str == '\0') return; int x = 0; int y; while(*str != '\0') { x *= n; if((*str>='0') && (*str<='9')) { y = *str - '0'; } else if( (*str>='A') && (*str<='F') ) { y = 10 + *str - 'A'; } else if( (*str>='a') && (*str<='f') ) { y = 10 + *str - 'a'; } else { cout << "error input" << endl; return; } if( y>=n ) // n进制数字不能大于n { cout << "error input" << endl; return; } x += y; str++; } convert(x, n , m); } int main(void) { convert(1234, 10, 16); return 0; }