zoukankan      html  css  js  c++  java
  • 十进制转其他进制

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

    */



  • 相关阅读:
    我的Java学习路线图
    请求重定向和请求转发的区别
    PHP代码审计学习-php安全基础
    无密码正向直连内网linux目标机复现
    Windows API 学习
    Http请求走私
    免杀手法-tcp套字节传递shellcode学习
    自启动模块构造-计划任务
    自启动模块构造-快速启动目录
    进程注入免杀学习
  • 原文地址:https://www.cnblogs.com/Guhongying/p/7672415.html
Copyright © 2011-2022 走看看