先后写代码转换十进制和十六进制
#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是什么意思