数制转换
根据栈的先进后出的特性,可以用栈来改变顺序。如将十进制数m转换为n进制的结果。
将m连续除以n,所得余数依次是n进制由低位到高位的值,但输出结果却要由高位到低位,因此,借助栈来改变顺序。
/*进制转换*/
void Conversion(int m, int n) {
SequenceStack<int> S(5);
int e;
char c;
if (m >= 0 && n >= 2 && n <= 16) {
while (m) {
S.Push(m % n);
m /= n;
}
while (!S.StackEmpty()) {
S.Pop(e);
if (e <= 9)
cout << e;
else {
/*10->A, 11->B, ..., 15->F*/
c = e + 55;
cout << c;
}
}
}
cout << endl;9
}