只要明白进制转换的原理就可以用程序写出来,现在给大家说明一下进制转换的原理以及在c++程序中的实现。
我们都知道10进制,就是我们所学所用的进制,在每个数满10的时候不能直接写在数上,比如20,不能写成110,这就有一个进制的问题,当一个数成了10的时候就向前一位进一,进制也是这一个道理,比如n进制就是一位数到n的时候向前一位进一,不能大于小于n(这单独一位数)
就比如我们求10进制的各位的数一样,我们先求个位数,既本身与10的余数,再是与10*10的余数,再是10*10*10.......这样类推,进制转换求各个位的数也是一样,就比如我们要求n进制,那么先求本身除n的余数,然后再在本身除n的前提下,求n的余数,再在数本身除n*n的情况下除n的余数,直到得到0为止,这样让余数从后往前依次组合,就得到了我们要的进制结果。下面是一段实现程序,当进制转换大于10的时候,有的数需要用字母代替,这时我们让那个数+55,然后强制转换成char字符型,就得到了字母。
#include <iostream>
using namespace std;
int main()
{
long n;
int p,c,m=0,s[100];
cin>>n;
cin>>p;
while (n!=0)
{
c=n%p;
n=n/p;
m++;s[m]=c;
}
for(int k=m;k>=1;k--)
{
if(s[k]>=10)
cout<<(char)(s[k]+55);
else
cout<<s[k];
}
return 0;
}