用c++编写一个函数实现数制的转换。在主函数中输入一个十进制数,输出相应的十六进制数。要求分别用数

2024-11-29 03:55:03
推荐回答(1个)
回答1:

#include
#include
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<    cout<    return 0;
}