转换十进制和十六进制

先后写代码转换十进制和十六进制

#include "stdio.h"
#include "string.h"
void c10_16(char p[], int n)
{
    int i = 0, j;
    while (n)
    {
        j = n % 16;
        if (j >= 0 && j <= 9)
            p[i] = j + '0';
        else p[i] = j + 55;
        n = n / 16;
        i++;
    }
    p[i] = '\0';
}

int main()
{
    int n, i;
    char s[20];
    scanf("%d", &n);
    c10_16(s, n);
    for (i = strlen(s) - 1; i >= 0; i--)
        printf("%c", s[i]);
    printf("\n");
    return 0;
}

代码:

#include<iostream>
#include<fstream>
#include<string>
#include<vector>
#include<cmath>
using namespace std;
void convert_10_to_16(int num)
{
    vector<int> ivec;
    int Num = num;
    while (num != 0)
    {
        ivec.push_back(num % 16);
        num = num / 16;
    }
 
    vector<int>::size_type sz = ivec.size();
    vector<string> ivec2;
    int m = 0;
    string s;
    for (vector<int>::size_type index = 0; index != sz; ++index)
    {
        if (ivec[sz - 1 - index] > 9)
        {   
            m = ivec[sz - 1 - index] + 55;
            s = m+'0'-'0';
            ivec2.push_back(s);
        }
        else
        {
            s = ivec[sz - 1 - index] + '0';
            ivec2.push_back(s);
 
        }         
    }
    
 
    cout << Num << "十进制转十六进制后为:";
    for (auto item : ivec2)
        cout << item;
    cout << endl << endl;
}

我想问一下那个+55是什么意思