一般系统中想打印16进制的数据可以使用printf("%x",d);等去打印,但是打印出来的数据如果比较长的话可读性就比较差,因此博主编写了一个能够在每两个数据之间添加一个空格,让16进制的数据可以性更高。
char *intToHex(int num)
{
static int i = 0;
static char buffer[10];//根据自己需求改变数组的大小
if (num < 16) //结束递归添加的判断
{
if (num< 10) //将当前数值转换成为字符并放入字符串
buffer[i] = num + '0';
else
buffer[i] = num - 10 + 'A';
buffer[i+1] = '\0'; //字符串结束标志
}
else
{
intToHex(num / 16); //递归调用
i++; //字符串索引+1
if(i%2 == 0){
buffer[i] = ' '; //添加空格
i++;
}
num %= 16; //取余
if (num < 10) //将当前数值转换成为字符并放入字符串
buffer[i] = num + '0';
else
buffer[i] = num - 10 + 'A';
}
return buffer;//转换完的数组
}