21xrx.com
2025-03-26 01:27:03 Wednesday
文章检索 我的文章 写文章
C++栈实现十进制转二进制
2023-06-28 11:15:10 深夜i     21     0
C++ 十进制 二进制 实现

在计算机科学中,十进制数转换为二进制数是一个非常常见的操作。虽然现代计算机能够自动进行这个操作,但在某些情况下,我们还是需要手动转换十进制数为二进制数。在本文中,我们将介绍如何使用C++栈来实现这个操作。

首先,我们需要准备一个栈来存储二进制数。在C++中,我们可以使用std::stack来实现。

std::stack<int> binaryStack;

然后,我们需要先将十进制数除以2,将结果的余数放入栈中,重复以上操作直到商等于0为止。

int decimalNum = 100; // 待转换的十进制数
while (decimalNum != 0)
{
  int remainder = decimalNum % 2;
  binaryStack.push(remainder);
  decimalNum /= 2;
}

此时,栈中的顺序就是二进制数的倒序。我们可以通过依次弹出栈顶元素,输出来得到二进制数的正确顺序。

while (!binaryStack.empty())
{
  std::cout << binaryStack.top();
  binaryStack.pop();
}

完整的代码如下:

#include <iostream>
#include <stack>
int main()
{
  std::stack<int> binaryStack;
  int decimalNum = 100; // 待转换的十进制数
  while (decimalNum != 0)
  {
    int remainder = decimalNum % 2;
    binaryStack.push(remainder);
    decimalNum /= 2;
  }
  while (!binaryStack.empty())
  {
    std::cout << binaryStack.top();
    binaryStack.pop();
  }
  return 0;
}

总结

使用C++栈可以很容易地实现十进制转二进制操作。我们只需要将每一次计算得到的余数放入栈中,然后依次弹出栈顶元素,就能得到正确的二进制数。这个操作也提醒我们,在日常编程中,使用栈数据结构可以轻松实现很多复杂操作。

  
  

评论区