码迷,mamicode.com
首页 > 其他好文 > 详细

十进制转其他进制

时间:2017-10-15 17:52:32      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:大于   std   style   span   code   space   pac   blog   mes   

//进制的转换
#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码的方法控制输出来减少时间复杂度的话,请顺便告诉我一声,不胜感激

*/



 

十进制转其他进制

标签:大于   std   style   span   code   space   pac   blog   mes   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!