利用栈实现将十进制整数转换成二、八、十六进制数。 程序如下
时间: 2023-06-06 09:05:57 浏览: 101
:抱歉,我可以回答您的问题。以下是利用栈实现将十进制整数转换为二进制、八进制、十六进制的程序示例:
```
#include <iostream>
#include <stack>
using namespace std;
// 将十进制整数 num 转换为 base 进制数
void convert(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 < 10) {
cout << remainder;
} else {
char ch = 'A' + remainder - 10;
cout << ch;
}
}
cout << endl;
}
int main() {
int num;
cout << "请输入一个十进制整数:";
cin >> num;
cout << "该数的二进制表示:";
convert(num, 2);
cout << "该数的八进制表示:";
convert(num, 8);
cout << "该数的十六进制表示:";
convert(num, 16);
return 0;
}
```
该程序使用了一个栈来存储转换后的进制数,先将十进制整数不断除 base 取余数并压栈,然后再依次弹出栈中元素得到转换后的 base 进制数。其中如果余数小于 10 则直接输出,否则将十六进制中的 A~F 转换为字符后输出。
阅读全文