注册 登录
编程论坛 C++教室

[原创]任意进制数的转换!

cnfarer 发布于 2010-02-26 22:30, 1288 次点击
程序代码:
/*任意进制间的转换*/
#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 编辑 ]
0 回复
1