21xrx.com
2024-12-22 22:15:55 Sunday
登录
文章检索 我的文章 写文章
C++ 实现十进制转二进制算法
2023-06-22 09:25:31 深夜i     --     --
C++ 十进制 二进制 算法 实现

C++是一种高效、灵活和流行的编程语言,能够帮助开发者轻松实现各种算法。其中,十进制转二进制是一个经典的算法,可以在C++中很容易实现。

这个算法的基本思想是将输入的十进制数不断地除以2,然后将余数记录下来,最终将余数倒序排列起来就是对应的二进制数。下面是一个简单的实现:


#include <iostream>

#include <stack>

using namespace std;

void decimalToBinary(int n) {

  stack<int> binary; // 用栈记录二进制数的每一位

  while (n > 0) {

    int remainder = n % 2; // 计算余数

    binary.push(remainder); // 将余数入栈

    n /= 2; // 将n逐步除以2

  }

  while (!binary.empty()) {

    cout << binary.top(); // 输出栈顶元素

    binary.pop(); // 弹出栈顶元素

  }

}

int main() {

  int n;

  cout << "请输入一个十进制数:";

  cin >> n;

  cout << "对应的二进制数为:";

  decimalToBinary(n);

  cout << endl;

  return 0;

}

在这个代码中,我们首先定义一个栈来记录二进制数的每一位,然后进行循环计算余数和逐步除以2的操作。当输入的十进制数已经被转换成为二进制数时,我们可以通过依次将栈顶元素输出并弹出栈来得到最终的二进制数。

需要注意的是,这个算法的时间复杂度是O(logn) - 即循环次数是输入数的二进制位数。因此,无论输入的数有多大,都不会消耗太多计算资源。

总的来说,C++提供了一种高效和简单的方法来实现十进制转二进制的算法。借助栈的帮助,我们可以通过循环计算余数和逐步除以2来得到对应的二进制数,从而实现了这个基础的算法。希望这篇文章能够帮助读者更好地理解这个算法的实现过程。

  
  

评论区

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