十进制整数转换为其他进制输出

#设计算法,把十进制整数转换为二至九进制之间任一进制输出。

#实现:把整数除以新的进制数,所得的余数入链栈TransStack,再取其商依次除以新进制数,所得余数依次入栈。最后依次出栈输出,即得整数转换为其他进制的结果。

#include<iostream>
using namespace std;
struct Node{
	int data;
	Node *next;
};
class TransStack{
private:
	Node *top;
public:
	TransStack(){top=NULL;}
	~TransStack(){}
	void push(int a){
		Node *s=new Node;
		s->data=a;
		s->next=top;
		top=s;
	}
	int 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,m,a,b;
	cout<<"\n\t\t请输入一个十进制的整数:";
	cin>>n;
	a=n;
	cout<<"\t\t转换为几进制(请输入2~9的阿拉伯数字):";
	cin>>m;
	TransStack t;
	try{
		if(m<2||m>9) throw"\n\t\t转换进制异常!\n";
	}catch(char *p){
		cout<<p;
	}
	if(m>1&&m<10){
		for(;;){
			b=a%m;  //取余数
			a=a/m;  //取商
			t.push(b);
			if(!a) break;
		}
		try{
			cout<<"\n\t\t"<<n<<"转换为"<<m<<"进制为:";
			for(;;){
				cout<<t.pop();
			}
		}catch(...){
			cout<<"\n\n\t\t";
		}
	}
	return 0;
}

#运行结果:



  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值