10进制转换成16进制的数,转换出来是反的。怎么才能正过来。在函数外面能实现吗?

2025-03-24 19:09:38
推荐回答(2个)
回答1:

void dec2hex(int n)
{
    if(n==0) return;
    dec2hex(n/16);
    putchar(getHexChar(n%16));
}
char getHexChar(int hex)
{
    assert(hex>=0 && hex<16);
    switch(hex)
    {
    case 10: return 'A';
    case 11: return 'B';
    case 12: return 'C';
    case 13: return 'D';
    case 14: return 'E';
    case 15: return 'F';
    default: return hex + '0';
    }
}

回答2:

 void turn10_16(int n)
 {
     if(n>15)
         turn10_16(n/16);
     turnback(n%16);                 
 }