
/*任意进制间的转换*/
#include<iostream>
void convert(char* num, int x, int y,char *num2)
{
__int64 n;int i;
char a[16];char *p=a;
n=(*num>='A'?*num-'A'+10:*num-'0');num++;
while (*num)
{
n=n*x+(*num>='A'?*num-'A'+10:*num-'0');
num++;
}
for (;n>y ; )
{
i=n%y;
*p++=(i<10?'0'+i:'A'+i-10);
n=n/y;
}
*p=(n<10?'0'+n:'A'+n-10);
while (p>=a)
{
*num2++=*p--;
}
*num2='\0';
return ;
}
int main()
{
char s[16];convert("AB",16,17,s); //将十六进制值“AB”转换成十七进制数(存放于S中)
printf("%s\n",s);
return 0;
}
#include<iostream>
void convert(char* num, int x, int y,char *num2)
{
__int64 n;int i;
char a[16];char *p=a;
n=(*num>='A'?*num-'A'+10:*num-'0');num++;
while (*num)
{
n=n*x+(*num>='A'?*num-'A'+10:*num-'0');
num++;
}
for (;n>y ; )
{
i=n%y;
*p++=(i<10?'0'+i:'A'+i-10);
n=n/y;
}
*p=(n<10?'0'+n:'A'+n-10);
while (p>=a)
{
*num2++=*p--;
}
*num2='\0';
return ;
}
int main()
{
char s[16];convert("AB",16,17,s); //将十六进制值“AB”转换成十七进制数(存放于S中)
printf("%s\n",s);
return 0;
}
[ 本帖最后由 cnfarer 于 2010-5-2 14:49 编辑 ]