十六进制及以下任意两对进制进制转化C++语言
#include "iostream"
#include "cstring"
#include "cmath"
#include "cstdlib"
#include "ctime"
#include "windows.h"
#include "algorithm"
using namespace std;
void xtoy(char *a,int jin,int cov){
if(jin==cov)return;
int len=strlen(a);
int deci=0;
int weight=1;
for(int i=len-1;i>=0;i--){
if(a[i]>='0'&&a[i]<='9'){
deci+=(a[i]-'0')*weight;
}else{
deci+=(a[i]-'A'+10)*weight;
}
weight*=jin;
}
int index=0;
while(deci){
int t=deci%cov;
if(t>=10){
a[index]=t-10+'A';
}else{
a[index]=t+'0';
}
deci/=cov;
index++;
}
a[index]=0;
for(int i=0;i<=(index-1)/2;i++){
int temp=a[i];
a[i]=a[index-1-i];
a[index-1-i]=temp;
}
}
int main(void) {
int cnt;
while(cin>>cnt){
printf("要转换的数? 这个数的进制? 要转成什么进制?\n");
for(int i=0;i<cnt;i++){
char temp[1024];
int jz,cov;
cin>>temp>>jz>>cov;
xtoy(temp,jz,cov);
cout<<temp<<endl;
}
}
return 0;
}