将 char ha[7] = "efee33"; 转换为unsigned char temp[] = {0xef,0xee,0x33};
void HexStrToByte(const char* source, unsigned char* dest, int sourceLen)
{
short i;
unsigned char highByte, lowByte;
for (i = 0; i < sourceLen; i += 2)
{
highByte = toupper(source[i]);
lowByte = toupper(source[i + 1]);
if (highByte > 0x39) //这里判断的是将A-F转换为0XA到0XF ,查看ASCII 表,可以看到从字符转换到hex之间的 差值
highByte -= 0x37;
else
highByte -= 0x30;
if (lowByte > 0x39) //这里是将0-9转换为0x0-0x9 同样查看ASCII表,可以看到从字符准换到hex之间的差值。
lowByte -= 0x37;
else
lowByte -= 0x30;
dest[i / 2] = (highByte << 4) | lowByte;
}
return;
}