在Windows下面有_ultoa_s函数的将一个整数转换为16进制的字符串,
在Linux下面没有这个函数,需要用到sprintf这个函数,如下代码所示
#include <iostream>
#include <cstdlib>
#include <cstdio>
//将一个整数转换为16进制的字符串
using namespace std;
int main(int argc, char* argv[])
{
if (argc < 2)
{
printf("Usage: ./_ultoa_s [int_number]\n");
return -1;
}
unsigned int n = atoi(argv[1]);
char ss[9] = {'0'};
sprintf(ss, "%x", n);
printf("ss:%s\n", ss);
return 0;
}
执行效果如下
bo@bo-pad:~/tmp$ ./_ultoa_s 10
ss:a
bo@bo-pad:~/tmp$ ./_ultoa_s 11
ss:b
bo@bo-pad:~/tmp$ ./_ultoa_s 12
ss:c
bo@bo-pad:~/tmp$ ./_ultoa_s 15
ss:f
bo@bo-pad:~/tmp$ ./_ultoa_s 1515
ss:5eb
bo@bo-pad:~/tmp$ ./_ultoa_s 151515
ss:24fdb
bo@bo-pad:~/tmp$ ./_ultoa_s 15151515
ss:e7319b
bo@bo-pad:~/tmp$