#include<iostream>
#include<vector>
#include<string>
#include<cmath>
using namespace std;
string conversion(string number, int n,int m)
{
int tenconversion = 0;
int length = number.size();
for (int i = 0; i < length;i++)
{
if (number[i] >= '0' && number[i] <= '9')
tenconversion += (number[i] - '0') * pow(n, length - i - 1);
else
tenconversion += (number[i] - 'A'+10) * pow(n, length - i - 1);
}
vector<int>n_conversion;
int k;
char q;
string nconversion;
while (tenconversion !=0)
{
n_conversion.push_back(tenconversion % m);
tenconversion = tenconversion / m;
}
for (int i = 0, j = n_conversion.size()-1; i < j; i++, j--)
{
k = n_conversion[i];
n_conversion[i] = n_conversion[j];
n_conversion[j] = k;
}
for (int j=0;j<=n_conversion.size()-1;j++)
{
if (n_conversion[j] >= 10) q = n_conversion[j] - 10 + 'A';
else q = n_conversion[j] - 0 + '0';
nconversion += q;
}
return nconversion;
}
int main()
{
string number;
int n, m;
cout << "请输入需要准换的数,以及其进制n,转换为进制m(n,m均小于等于26):";
cin >> number >> n >> m;
number = conversion(number, n, m);
cout <<number;
return 0;
}
用c++实现n进制向m进制的转换
最新推荐文章于 2024-04-05 18:36:16 发布