题目描述
请你编一程序实现两种不同进制之间的数据转换。
n为进制数(2<=n<=16)
题目分析
最简单的思路,先转化为十进制,再转化为对应的进制
题目难度:普及–
AC代码
#include<bits/stdc++.h>
using namespace std;
int n,m;
char ans[100];
void chg(int n,string s1)
{
int num = 0, len = s1.length(),j = 0;
for(int i=len-1;i>=0;i--)
{
if(s1[i]>='A'&&s1[i]<='F')
num+=(s1[i]-55)*pow(n,j);
else num+=(s1[i]-48)*pow(n,j);
j++;
}
j = 0;
while(num!=0)
{
int k = num%m;
if(k>=0&&k<=9) ans[j] = k+48;
else ans[j] = k+55;
j++;
num = num/m;
}
}
int main()
{
cin>>n;
string str;
cin>>str;
cin>>m;
chg(n,str);
int len = strlen(ans);
for(int i=len-1;i>=0;--i)
cout<<ans[i]; //逆序输出!
}