// 将16进制数据输出到控制台
void textout(char * name, unsigned char * p, unsigned short len)
{
char * pp;
unsigned short i;
pp = (char*) malloc(1024);
for (i = 0; i<1024; i++)pp[i] = 0;
// len=strlen(p);
for (i = 0; i<len; i++)
sprintf(pp + i * 2, "%02x", p[i]);
sprintf(pp + i * 2, "\n\r");
printf("%s",name);
free(pp);
}
unsigned char toByte(char c)
{
unsigned char value = 0;
if (c >= '0' && c <= '9')
value = c - '0';
else if (c >= 'A' && c <= 'Z')
value = c - 'A' + 10;
else if (c >= 'a' && c <= 'z')
value = c - 'a' + 10;
return value;
}
void hexStringToByte(unsigned char *dstByte, const char *srcHexString, int len)
{
int index;
for (int i = 0; i < len; i++){
index = i * 2;
dstByte[i] = ((toByte(srcHexString[index])) << 4) | toByte(srcHexString[index + 1]);
}
}
int main()
{
char tmp[10];
unsigned char t_buf[1024]; // 发送报文缓冲区
hexStringToByte(t_buf, "abcd1234", 8);
textout(tmp, t_buf, 8);
system("PAUSE");
return 0;
}