用顺序栈十进制转换二进制c++
时间: 2024-10-10 11:06:12 浏览: 38
在C++中,我们可以使用顺序栈(通常基于数组实现)将十进制数转换成二进制。以下是一个简单的步骤:
1. 初始化一个大小足够的顺序栈,用于存储二进制位。
2. 输入十进制数并将其转换为整数。
3. 使用循环,不断除以2并将余数压入栈中。直到商变为0,此时栈顶的数字就是二进制表示的最低有效位。
4. 遍历栈,从栈顶开始依次取出元素并连接起来,形成完整的二进制字符串。
以下是简单的代码示例:
```cpp
#include <iostream>
#include <stack>
std::string decimalToBinary(int num) {
std::stack<int> binaryStack;
while (num > 0) {
binaryStack.push(num % 2);
num = num / 2;
}
std::string result;
while (!binaryStack.empty()) {
result += std::to_string(binaryStack.top());
binaryStack.pop();
}
return result;
}
int main() {
int decimalNum;
std::cout << "请输入一个十进制数:";
std::cin >> decimalNum;
std::string binaryStr = decimalToBinary(decimalNum);
std::cout << "它的二进制形式是:" << binaryStr << std::endl;
return 0;
}
```
阅读全文