编写c++程序,利用栈把十进制正整数转换为 n(n 可以为 2、8、16 等等)进制数输出。
时间: 2024-10-27 19:08:23 浏览: 13
在 C++ 中,你可以使用标准库中的 vector 类型作为动态数组模拟栈结构,并通过循环和除法取余运算将十进制整数转换成其他进制数。以下是一个基本的示例,展示了如何将十进制数转换为二进制(n=2)、八进制(n=8),以及十六进制(n=16)。这个例子假设输入的是正整数。
```cpp
#include <iostream>
#include <vector>
#include <string>
std::string decimalToBase(int num, int base) {
std::vector<char> digits{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
// 如果输入为0,则直接返回对应基数的零字符
if (num == 0) return "0";
std::string result;
while (num > 0) {
result = digits[num % base] + result;
num /= base;
}
return result;
}
int main() {
int input;
std::cout << "请输入一个十进制正整数: ";
std::cin >> input;
std::cout << "转换为二进制: " << decimalToBase(input, 2) << std::endl;
std::cout << "转换为八进制: " << decimalToBase(input, 8) << std::endl;
std::cout << "转换为十六进制: " << decimalToBase(input, 16) << std::endl;
return 0;
}
```
当你运行这个程序并输入一个十进制数字,它会显示相应的二进制、八进制和十六进制表示。
阅读全文