任意进制转换函数

来源:互联网 发布:eplan软件介绍 编辑:程序博客网 时间:2024/06/05 08:54
//int to string
string IntToStr(int num)
{
char* tempStr = "";
tempStr = (char*)malloc(sizeof(num));
memset(tempStr, 0, sizeof(num));
sprintf(tempStr, "%d", num);
return (string)tempStr;

}


//int to string

string IntToStr(int num)

{

char str[200];

sprintf(str, "%d", num);

return (string)str;

}





/*
进制之间转换
strSrc 原始数据,
返回值  返回结果数据,
numSrc 原始进制
numDes 返回结果进制
*/
string thranslateScale(string strSrc, int numSrc, int numDes)
{
int num = 0; //转换成十进制后的数
int t = 0;
//1 转十进制
for (int index = 0; index < strSrc.size(); ++index)
{
if (strSrc[index] >= '0' && strSrc[index] <= '9')
t = strSrc[index] - '0';
else
t = strSrc[index] - 'A' + 10;


num = numSrc*num + t;
}


//转numDes进制
string strDes = "";
for (;;)
{
t = num%numDes;
num /= numDes;
if (t <= 9)
strDes = IntToStr(t) + strDes;
else
strDes = (char)((t - 10 + 'A')) + strDes;
if(num == 0)
break;
}


return strDes;
}
原创粉丝点击