c++用栈将一个十进制整数转化为二进制
时间: 2024-12-16 13:26:02 浏览: 4
C++实现十六进制字符串转换为十进制整数的方法
在C++中,可以使用栈的数据结构来将一个十进制整数转换为二进制字符串。这里是一个简单的步骤过程:
1. **初始化栈**:创建一个空栈,用于存储二进制位。
2. **遍历十进制数**:对于输入的十进制数,从最低有效位开始逐位取模(除以2),并将余数压入栈。
3. **取余循环**:对十进制数不断取余,直到商变为0。
4. **弹出栈元素**:当商为0时,栈顶的元素依次就是二进制数的每一位,从高到低。
5. **构建字符串**:将栈顶元素依次取出并连接成字符串,通常先存储在字符数组中,最后再转为字符串。
下面是一个示例代码片段,展示了这个过程:
```cpp
#include <iostream>
#include <stack>
#include <string>
std::string decimalToBinary(int num) {
std::stack<int> binaryStack;
while (num > 0) {
binaryStack.push(num % 2); // 取余数压入栈
num /= 2; // 除以2
}
std::string result;
while (!binaryStack.empty()) {
result += std::to_string(binaryStack.top()); // 弹出栈顶元素添加到结果
binaryStack.pop();
}
return result;
}
int main() {
int decimal = 10;
std::string binary = decimalToBinary(decimal);
std::cout << "十进制 " << decimal << " 转换成二进制为: " << binary << std::endl;
return 0;
}
```
阅读全文