#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main()
{
int n,r;
vector<int> vec;
while (cin>>n>>r)
{
vec.clear ();
if (n == 0) cout<<'0';
if(n<0)
{
n*=-1;
cout<<"-";
}
while (n)
{
vec.push_back(n%r);
n/=r;
}
for (int i = vec.size()-1; i >= 0; i --)
{
if(vec[i]==10)
cout<<"A";
else if(vec[i]==11)
cout<<"B";
else if(vec[i]==12)
cout<<"C";
else if(vec[i]==13)
cout<<"D";
else if(vec[i]==14)
cout<<"E";
else if(vec[i]==15)
cout<<"F";
else cout<<vec[i];
}
cout<<endl;
}
return 0;
}

本文介绍了一个简单的C++程序,该程序可以将十进制数转换为用户指定的任意进制数(2到16进制),并能够正确处理负数。通过使用标准模板库(STL)中的vector容器来保存转换过程中的中间结果,实现了一个高效且易于理解的转换逻辑。

被折叠的 条评论
为什么被折叠?



