编写了一个子函数,用于实现将十进制转换为十六进制
#include<iostream>
#include<cstdlib>
#include<vector>
using namespace std;
char *decimalToHEX(int input);/函数声明
int main()
{
// 题目 163 求100 到200之间所有的素数
/*
for (size_t i = 100; i <= 200; i++)
{
int n = 0;
for (size_t j = 1; j < i; j++)
{
if (i%j==0)
n++;
}
if (n<=2)
{
cout << i << ",";
}
}
*/
char *p;
p=decimalToHEX(500);
for (size_t i = 0; i < sizeof(p)/sizeof(char); i++)
{
cout << *p;
p++;
}
system("pause");
}
//将十进制转换为十六进制的数字串并输出来
char *decimalToHEX(int input)
{
int x;
vector<char> vec;
while (input>0)
{
x = input % 16;//求余数
input = input / 16;
//将大于等于10的转换为ABCDEF
if (x<10)
vec.push_back(x+48);
else vec.push_back(55 + x);
}
char *hex = new char[vec.size() - 1];//创建动态数组
//将vector内容转换为数组,方便作为返回值
for (int i =0; i < vec.size() ; i++)
{
hex[i] = vec[vec.size()-i-1];
//cout << hex[i];
}
return hex;
}