21xrx.com
2025-03-29 06:29:34 Saturday
文章检索 我的文章 写文章
C++ 实现十进制转二进制算法
2023-06-22 09:25:31 深夜i     11     0
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来得到对应的二进制数,从而实现了这个基础的算法。希望这篇文章能够帮助读者更好地理解这个算法的实现过程。

  
  

评论区

请求出错了