用c++编写一个函数实现数制的转换。在主函数中输入一个十进制数,输出相应的十六进制数。要求分别用数
用c++编写一个函数实现数制的转换。在主函数中输入一个十进制数,输出相应的十六进制数。要求分别用数组和递归实现...
用c++编写一个函数实现数制的转换。在主函数中输入一个十进制数,输出相应的十六进制数。要求分别用数组和递归实现
展开
1个回答
展开全部
#include<iostream>
#include<algorithm>
using namespace std;
// array
string dec2hex(int x)
{
string m;
while(x != 0){
int y = x %16;
if(y >= 10)
m.push_back(y-10+'A');
else
m.push_back(y+'0');
x /= 16;
}
reverse(m.begin(),m.end());
return m;
}
// iteration
string dec2hexd(int x)
{
string ans;
if(x < 16){
if(x == 0){
ans.push_back('0');
return ans;
}
if(x < 10){
ans.push_back(x+'0');
return ans;
}
else{
ans.push_back(x-10+'A');
return ans;
}
}
else{
int t = x %16;
if(t < 10)
ans.push_back('0'+t);
else
ans.push_back(t-10+'A');
if(x/16 != 0)
return dec2hexd(x/16)+ans;
else
return ans;
}
}
int main()
{
cout<<dec2hex(100)<<endl;
cout<<dec2hexd(100)<<endl;
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |