字符串转换成16进制
void tohex(char *hh, BYTE *dd,int len)
{
char h1,h2;
BYTE s1,s2;
for (int i=0;i<len;i++){
h1 = hh[2*i];
h2 = hh[2*i+1];
s1 = toupper(h1) - 0x30;
if (s1 > 9) s1 -= 7;
s2 = toupper(h2) - 0x30;
if (s2 > 9) s2 -= 7;
dd[i] = s1*16 + s2;
}
}
测试程序:
int Test_strToHex()
{
int i = 0;
int len = 0;
char compstr[256] = "0A84000008";
unsigned char hexData[256];
len = strlen(compstr) / 2;
tohex(compstr, hexData, len);
for (i=0; i<len; i++)
{
printf("%02x ", hexData[i]);
}
printf("\n");
return 0;
}