如数组内容:
uint8_t buf[] = {0x23, 0x45, 0x98, 0x16}:
打印出如下格式:
23 45 98 16
可使用如下代码转换,将数组的每个成员一个个转换成ASC II码:
/*
* @param1 buf:输入数组
* @param2 len:输入数组的长度
* @param3 out:输出的字符串
*/
void ArrayToHexString(const char *buf, int len, char *out)
{
#define IntToASCII(c) (c)>9?((c)+0x37):((c)+0x30);
char temp;
int i = 0;
for (i = 0; i < len; i++) {
temp = buf[i]&0xf0;
out[3 * i + 0] = IntToASCII(temp>>4);
temp = buf[i]&0x0f;
out[3 * i + 1] = IntToASCII(temp);
/* space */
out[3 * i + 2] = 0x20;
}
out[3 * i] = 0;
}
例:
int main()
{
char buf[50];
char out[200];
for (int i = 0; i < 50; i++){
buf[i] = i;
}
ArrayToHexString(buf, 50, out);
printf("%s\n", out);
return 0;
}
原数组为:0 1 2… 49, 结果为: