c++将十进制转化为二进制,并用栈倒序输出
时间: 2024-10-29 07:06:49 浏览: 40
在C++中,你可以使用内置的`bitset`类或者手动通过循环来实现十进制数转换为二进制并倒序输出。这里提供一种简单的手动实现方法:
```cpp
#include <iostream>
#include <stack>
// 将十进制转为二进制字符串
std::string decimalToBinary(int decimal) {
std::string binary;
while (decimal > 0) {
binary = std::to_string(decimal % 2) + binary; // 取余数并添加到前面
decimal /= 2; // 整除
}
return binary;
}
// 使用栈倒序输出二进制字符串
void reverseAndPrint(std::string binary) {
std::stack<char> stack(binary.begin(), binary.end());
while (!stack.empty()) {
std::cout << stack.top();
stack.pop();
}
}
int main() {
int decimalNum = 42; // 示例输入
std::string binaryStr = decimalToBinary(decimalNum);
std::cout << "二进制表示: ";
reverseAndPrint(binaryStr);
return 0;
}
```
在这个示例中,首先计算出给定十进制数的二进制形式,然后使用`stack`容器存储二进制每一位,最后逐个弹出栈顶元素,实现了倒序输出。
阅读全文