将n进制转化为m进制
一般,我们是通过位值定理来将n进制转化为10进制;
然后对整数进行辗转相除来得到m进制整数
void find(int x){//integer;
w=0;
while(sum>0){ //先除为低;
t[w]=q[sum%m];
w++;
sum/=m;
}
mark=w;
}
for(int i=k-1,j=0;i>=0;i--,j++){//integer;
if(n<=10||(a[j]-'0')>=0&&(a[j]-'0')<10)
sum+=pow(n,i)*(a[j]-'0');
else {
sum+=pow(n,i)*(a[j]-'A'+10);//15
}
}
对于小数,我们一般进行辗转相除法;
void find1(int l){//deciaml;
int x=sum1;
int s=100;
while(sum1>0&&s--){
sum1*=m;
x=sum1;
t[w]=q[x];w++;
sum1-=x;
}
}
for(int j=1,i=k+1;i<x;i++,j++){ //decimal;
if(n<=10||(a[i]-'0')>=0&&(a[i]-'0')<10)
sum1+=pow(n,-j)*(a[i]-'0');
else {
sum1+=pow(n,-j)*(a[i]-'A'+10);//15
}
}
总结
关于,这个进制转换通常是转为零;
但是,也可以利用二进制<-->八进制、十六进制;