21xrx.com
2024-11-25 03:16:15 Monday
登录
文章检索 我的文章 写文章
C++栈实现十进制转二进制
2023-06-28 11:15:10 深夜i     --     --
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++栈可以很容易地实现十进制转二进制操作。我们只需要将每一次计算得到的余数放入栈中,然后依次弹出栈顶元素,就能得到正确的二进制数。这个操作也提醒我们,在日常编程中,使用栈数据结构可以轻松实现很多复杂操作。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复