复习栈的时候,碰巧做到这题,比较简单
## 思想
就是当该数不为0时,不断对2取余,将余数都存入栈中,最后再一次取出进行了。
```cpp
#include<bits/stdc++.h>
using namespace std;
#define maxSize 20
/*十进制转二进制*/
void transfer(int N)
{
int data[maxSize];
int top=-1;
int a;
int result=0;
while(N!=0)
{
a=N%2;
data[++top]=a;
N=N/2;
}
cout<<"Result: "<<endl;
/* while(top!=-1)
{
cout<<data[top--];
}
此输出为我的输出方法,不太精确。
*/
while(top!=-1)
{
a=data[top--];
result=result*10+a;
}
cout<<result;
}
int main()
{
int num;
cout<<"Input Data:"<<endl;
cin>>num;
transfer(num);
return 0;
}
![就是这样](https://img-blog.csdnimg.cn/20200624215024148.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzMjA1NjU2,size_16,color_FFFFFF,t_70)