#include <iostream>
using namespace std;
const int StackSize = 100;
struct Node{
int data;
Node *next;
};
template <class DataType>
class SeqStack {
public:
SeqStack();
~SeqStack() {}
void Push(DataType x); // 入栈
DataType Pop(); // 出栈
private:
DataType data[StackSize];
Node *top;
};
template <class DataType>
SeqStack<DataType>::SeqStack() // 构造函数 初始化一个空栈
{ top ==NULL; }
template <class DataType>
void SeqStack<DataType>::Push(DataType x) {
Node *s=new Node;
s->data=x;
s->next=top;
top=s;
}
template <class DataType>
DataType SeqStack<DataType>::Pop() {
if(top==NULL) throw"\n\t\t下溢!\n\t\t";
Node *p=top;
int x=p->data;
top=p->next;
delete p;
return x;
}
int main(){
int n,a,b;
cout<<"请输入一个十进制的整数:";
cin>>n;
a=n;
SeqStack<int> t;
for(;;){
b=a%2; //取余数
a=a/2; //取商
t.Push(b); //余数依次入栈
if(!a) break;
}
try{
cout<<n<<"转换为二进制为:";
for(;;){
cout<<t.Pop(); //余数依次出栈,后进先出
}
}catch(char *p){
cout<<"\n\n\t\t";
}
return 0;
}
十进制转二进制
最新推荐文章于 2021-10-20 15:58:00 发布