如何将一个n进制的数转换成m进制的数
作者:
弥海砂
,
2024-03-10 12:46:32
,
所有人可见
,
阅读 47
如何将一个n进制的数转换成m进制的数
#include<bits/stdc++.h>
using namespace std;
//将n进制数num转换成m进制数
int main()
{
int n,m, ten=0;//用于存放求出的十进制的值
char num[50]={0}, ans[50]={0};//用于存放余数
cin>>n>>num>>m;
//1.将n进制数转换为十进制
//从右边最低位开始乘以每一位权重然后累加(参考2->10方法)
int len=strlen(num);
for(int i=len-1,k=0;i>=0;i--,k++)
{
int temp;//字符
//字符转换成整数
if(num[i]>='A'&&num[i]<='F')//A~F对应10~15
temp=num[i]-'A'+10;
else
temp=num[i]-'0';
ten=ten+temp*pow(n,k);
}
//2.将十进制数转换为m进制数
int k=0;
while(ten!=0)
{
int temp;
int u=ten%m;//余数
ten/=m;
//整数转换成字符
if(u<10)
temp=u+'0';
else
temp=u+'A'-10;
ans[k++]=temp;
}
//3.输出答案(倒着)
for(int i=k-1;i>=0;i--)
cout<<ans[i];
}