数据结构编程实现十进制与八进制之间的相互转换;
时间: 2023-06-17 18:02:04 浏览: 150
可以使用栈来实现十进制与八进制之间的相互转换。
十进制转八进制:
1. 将十进制数不断除以 8,将余数入栈,直到商为0。
2. 将栈中的元素依次出栈,即可得到对应的八进制数。
八进制转十进制:
1. 将八进制数从右往左依次取出每一位数字,将其乘以 8 的幂次方,幂次方从0开始,每次加1。
2. 将每一位乘积相加,即可得到对应的十进制数。
以下是 C++ 实现代码:
```cpp
#include <iostream>
#include <stack>
using namespace std;
// 十进制转八进制
void decToOct(int n) {
stack<int> s;
while (n != 0) {
s.push(n % 8);
n /= 8;
}
while (!s.empty()) {
cout << s.top();
s.pop();
}
}
// 八进制转十进制
int octToDec(int n) {
int res = 0, base = 1;
while (n != 0) {
res += (n % 10) * base;
n /= 10;
base *= 8;
}
return res;
}
int main() {
int n;
cout << "请输入一个十进制数:";
cin >> n;
cout << "转换成八进制为:";
decToOct(n);
cout << endl;
cout << "请输入一个八进制数:";
cin >> n;
cout << "转换成十进制为:" << octToDec(n) << endl;
return 0;
}
```
阅读全文
相关推荐















