十进制转二进制

来源:互联网 发布:kbengine java 编辑:程序博客网 时间:2024/06/06 02:40
#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;}