首页 > 其他 > 详细

十进制转其他进制

时间:2017-10-15 16:38:26      阅读:176      评论:0      收藏:0      [点我收藏+]
//进制的转换
#include <iostream> #include <stack> using namespace std; void trans(int N,int B) //参数N为要进行转换的数,参数B是将要转换成的进制 { stack<int> st1; while(N!=0) { st1.push(N%B); N/=B; } while(!st1.empty()) //当栈不空的时候,不断地检测栈顶的元素出栈并且判断其是否大于10 { switch(st1.top()) { case 10:cout<<"A"; //大于10之后的进制转换就要使用字母来代替 break; case 11:cout<<"B"; break; case 12:cout<<"C"; break; case 13:cout<<"D"; break; case 14:cout<<"E"; break; case 15:cout<<"F"; break; default: //如果栈中的元素小于10,则直接输出原数值 cout<<st1.top(); } st1.pop(); //将栈顶的元素pop出去 } return ; } int main() { while(1) { int N,B; cout<<"请输入要转换的数N:"; cin>>N; cout<<endl; cout<<"请输入要转换的进制B:"; cin>>B; cout<<endl; cout<<"将十进制的"<<N<<"转换成"<<B<<"进制后为:"; trans(N,B); cout<<endl<<endl; } return 0; }
/*

其实个人觉得使用栈的结构特点可以解决递归的一些问题,这里用了栈,还可以使用递归。
老师在讲栈的时候提到进制的转换,好像当时他说在进制转换超过十进制时使用switch语句会增加时间复杂度,他讲了一种使用ASCII码的方法,只是我忘了怎么用。

路过的童鞋知道上述那种使用ASCII码的方法控制输出来减少时间复杂度的话,请顺便告诉我一声,不胜感激

*/



 

十进制转其他进制

原文:http://www.cnblogs.com/Guhongying/p/7672415.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!