C++实现任意进制转换
来源:互联网 发布:电视检测软件 编辑:程序博客网 时间:2024/05/20 05:56
使用C++的STL的栈,实现2,8,10,16,36任意进制的数的转换。
思路是不管输入什么数,首先把它转换成10进制的数,再从十进制的数转换为别的进制。
<pre name="code" class="cpp">#include "stdafx.h"#include "JinZhi.h"#include <stack>#include "math.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif/////////////////////////////////////////////////////////////////////////////// The one and only application objectCWinApp theApp;using namespace std;/***********************************************函数作用:把十进制转换为其他进制参数说明:int iTen:十进制数 int iTran:待转换数的进制 char * sRet:转换后获得的字符串************************************************/void tenToOther(int iTen,int iTran,char * sRet){stack <int> stackInt;//声明一个栈int iTop = 0;while(iTen > 0){stackInt.push(iTen%iTran);//每次把第一次的取余的数压入栈iTen /= iTran;//十进制数每次对待转进制取整}int iCnt =0;while(!stackInt.empty()){iTop = stackInt.top();//每次得到栈顶元素stackInt.pop();//取出后要进行出栈操作if (iTop <10 )sRet[iCnt++] = iTop+'0';else//如果>=10,变成相应的字母sRet[iCnt++] = iTop -10 +'a';}sRet[iCnt] = 0;}/***********************************************函数作用:把其他进制的数转换为十进制的数参数说明:char * sInit:输入待转换的字符串 int iTran:待转换数的进制 int iLen:待转换的字符串的长度************************************************/int otherToTen(char * sInit,int iTran,int iLen){int iTenSum = 0;int iTenTmp = 0;for (int i = 0; i < iLen; i++)//循环扫描字符串{if ( sInit[i] <= '9')//如果某位小于9,转为int型*相应的倍数iTenTmp = (int)((sInit[i]-'0')*pow(iTran,(iLen-i-1)));else//如果某位大于9,转为int型,其中87是用'a'-10,计算出来iTenTmp = (int)((sInit[i]-87)*pow(iTran,(iLen-i-1)));iTenSum += iTenTmp;}return iTenSum;}int _tmain(int argc, TCHAR* argv[], TCHAR* envp[]){int nRetCode = 0;int iInit;int iInput;int iTrans;char sOut[10];char sInput[10];cout<<"输入进制"<<endl;cin>>iInit;cout<<"输入一个数"<<endl;cin>>sInput;cout<<"输入待转换的进制"<<endl;cin>>iTrans;int iTenTmp = otherToTen(sInput,iInit,strlen(sInput));tenToOther(iTenTmp,iTrans,sOut);cout<<sOut;return nRetCode;}
运行情况如图
源程序下载
http://download.csdn.net/detail/luoyikun/8222891
0 0
- C语言将任意数转换成任意进制
- C任意进制转换程序
- C任意进制转换程序
- C 任意进制转换程序
- 任意进制转换(c++)
- 任意进制转换的递归实现
- 用栈实现任意进制转换
- C++实现任意进制转换
- 任意进制转换 python实现
- Java实现任意进制转换
- 数据结构 栈的应用任意进制转换(c语言实现)
- 数据结构 使用递归任意进制转换(c语言实现)
- C语言实现任意进制的转换,主要注意代码的小技巧
- 任意进制转换
- 任意进制转换
- 任意进制转换
- 任意进制转换
- 任意进制转换
- windows中的环境变量
- asp.net--站点构架(页首设计)
- HDOJ 题目1864 最大报销额 (贪心)
- Android开发之onClick事件的三种写法
- chmod----文件权限修改(mode)
- C++实现任意进制转换
- win7如何安装maven、安装protoc
- tomcat的目录配置
- 如何通过eclipse查看、阅读hadoop2.4源码
- pat 1027 Colors in Mars
- 计算机工作原理-CPU的内部架构和工作原理
- C# 数独游戏 递归,回溯,验证是否满足数独
- latex小技巧--段首不缩进,段落编号,表格直接放入,CV
- 《黑客免杀攻防》读书笔记-软件逆向工程(7)加法与减法的识别与优化原理