将数组转成16进制hex字符串数组(版本二比版本一效率高-未测试)更多内容参考以下网址。
https://www.chenxublog.com/2020/03/08/c-fast-convert-hex-char-array.html
#include <stdio.h>
#include <string>
#include <iostream>
using namespace std;
const char hex_table[] = {
'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'
};
void to_hex(char *s, int l, char *d)
{
while (l--)
{
*(d + 2 * l + 1) = hex_table[(*(s + l)) & 0x0f];
*(d + 2 * l) = hex_table[(*(s + l)) >> 4];
}
}
void to_hex2(unsigned char *s, int l, char *d)
{
while (l--)
{
*(d++) = hex_table[*s >> 4];
*(d++) = hex_table[*(s++) & 0x0F];
}
}
int main() {
unsigned char s[] = {0xff,15,0x91,84};
char d[9];
d[8] = '\0';
to_hex2(s, 4, d);
printf("%s\n", d);
getchar();
return 0;
}