用C++的栈实现十进制转二进制
时间: 2024-12-23 12:13:54 浏览: 17
在C++中,我们可以使用标准库中的stack容器来实现十进制数转换为二进制。这里是一个简单的例子,我们首先将十进制数除以2得到商和余数,余数就是二进制的最低位,然后将每次的结果压入栈中,直到商变为0。
以下是实现这个功能的代码:
```cpp
#include <iostream>
#include <stack>
#include <string>
std::string decimalToBinary(int decimal) {
std::stack<int> binaryStack;
while (decimal > 0) {
binaryStack.push(decimal % 2);
decimal /= 2;
}
// 将栈顶元素反向存储到字符串中,因为栈是后进先出(LIFO)
std::string result;
while (!binaryStack.empty()) {
result += std::to_string(binaryStack.top());
binaryStack.pop();
}
// 添加前置零以确保结果是正确的二进制形式
if (result[0] == '0') {
result = "0" + result;
}
return result;
}
int main() {
int decimalInput;
std::cout << "Enter a decimal number to convert to binary: ";
std::cin >> decimalInput;
std::string binaryResult = decimalToBinary(decimalInput);
std::cout << "The binary representation is: " << binaryResult << std::endl;
return 0;
}
```
当你运行此程序并输入一个十进制数,它会输出相应的二进制表示。
阅读全文