在程序中进行进制转换通常采用模拟的方式进行,以下给出两个简单的例子:
十进制转 n 进制
以下给出一个例子,最终结果以字符串形式存储。
整个过程实际上是在模拟短除法。
int num,cnt=0;
char a[100];
int n;
scanf("%d",&n);
scanf("%d",&num);
while(num)
{
    a[cnt++]=num%n+'0';
    num/=3;
}
a[cnt]='\0';
printf("%s",a);
n进制转十进制
过程实现本质仍然是按权展开相加。
char b[100];
int n;
scanf("%s",b);
scanf("%d",&n);
int len=strlen(b);
int num,w=1;
for(int i=len-1;i>=0;i--)
{
    num+=(b[i]-'0')*w;//这里b是一个字符串存储的二进制数
    w*=n;
}
其中的“w*=n”实际上是通过循环实现每一位权重的增加的,即 位数每高一位,底数的指数+1.
