使用栈实现数制的转换,包括十进制到二、八、十六进制的转换
时间: 2023-06-08 07:05:17 浏览: 135
好的,对于这个问题,我们可以先将十进制数不断除以要转换的进制,将余数存放在栈中,最后将栈中元素按顺序出栈即可得到转换后的数。以下是使用 C++ 实现的代码:
```c++
#include <iostream>
#include <stack>
using namespace std;
void decimalTo(int num, int base) {
stack<int> s;
while (num != 0) {
s.push(num % base);
num /= base;
}
while (!s.empty()) {
int remainder = s.top();
s.pop();
if (remainder > 9)
cout << (char)('A' + remainder - 10);
else
cout << remainder;
}
}
int main() {
int num, base;
cout << "请输入一个十进制数:";
cin >> num;
cout << "请输入要转换的进制(2、8、16):";
cin >> base;
cout << "转换后的结果为:";
decimalTo(num, base);
cout << endl;
return 0;
}
```
希望能够帮助到您!