数据结构的进制转换c++
时间: 2023-11-26 17:45:50 浏览: 69
C++语言可以使用栈和队列来实现带小数的任意进制转换。具体实现方法如下:
```C++
// 将十进制数转换为任意进制数
void convert(int num, int base) {
stack<int> s;
while (num) {
s.push(num % base);
num /= base;
}
while (!s.empty()) {
cout << s.top();
s.pop();
}
}
// 将任意进制数转换为十进制数
double convert(string num, int base) {
queue<int> q;
for (int i = 0; i < num.size(); i++) {
if (num[i] >= '0' && num[i] <= '9') {
q.push(num[i] - '0');
} else if (num[i] >= 'A' && num[i] <= 'Z') {
q.push(num[i] - 'A' + 10);
} else if (num[i] >= 'a' && num[i] <= 'z') {
q.push(num[i] - 'a' + 10);
}
}
double res = 0, pow = 1;
while (!q.empty()) {
res += q.front() * pow;
q.pop();
pow *= base;
}
return res;
}
```