利用栈的特性实现十进制整数到其他进制整数的转换
#include <iostream>
#include <stack>
using namespace std;
// 函数将十进制整数转换为其他进制的字符串表示
string decimalToBase(int decimalNumber, int base) {
stack<char> resultStack;
while (decimalNumber > 0) {
int remainder = decimalNumber % base;
char digit;
if (remainder < 10) {
digit = '0' + remainder;
} else {
digit = 'A' + (remainder - 10);
}
resultStack.push(digit);
decimalNumber /= base;
}
string result = "";
while (!resultStack.empty()) {
result += resultStack.top();
resultStack.pop();
}
return result;
}
int main() {
int decimalNumber;
int base;
cout << "输入一个十进制整数: ";
cin >> decimalNumber;
cout << "输入目标进制(例如2、8、16): ";
cin >> base;
if (base != 2 && base != 8 && base != 16) {
cout << "目标进制不受支持。" << endl;
return 1;
}
string result = decimalToBase(decimalNumber, base);
cout << "转换结果: " << result << endl;
return 0;
}
运行结果