C语⾔版的16进制与字符串互转函数
/*
// C prototype : void StrToHex(BYTE *pbDest, BYTE *pbSrc, int nLen)// parameter(s): [OUT] pbDest - 输出缓冲区// [IN] pbSrc - 字符串
// [IN] nLen - 16进制数的字节数(字符串的长度/2)// return value:
// remarks : 将字符串转化为16进制数*/
void StrToHex(BYTE *pbDest, BYTE *pbSrc, int nLen){
char h1,h2;BYTE s1,s2;int i;
for (i=0; ih1 = pbSrc[2*i];h2 = pbSrc[2*i+1];s1 = toupper(h1) - 0x30;if (s1 > 9) s1 -= 7;s2 = toupper(h2) - 0x30;if (s2 > 9) s2 -= 7;
pbDest[i] = s1*16 + s2;}}
/*
// C prototype : void HexToStr(BYTE *pbDest, BYTE *pbSrc, int nLen)// parameter(s): [OUT] pbDest - 存放⽬标字符串// [IN] pbSrc - 输⼊16进制数的起始地址// [IN] nLen - 16进制数的字节数// return value:
// remarks : 将16进制数转化为字符串*/
void HexToStr(BYTE *pbDest, BYTE *pbSrc, int nLen){
char ddl,ddh;int i;
for (i=0; iddh = 48 + pbSrc[i] / 16;ddl = 48 + pbSrc[i] % 16;if (ddh > 57) ddh = ddh + 7;if (ddl > 57) ddl = ddl + 7;pbDest[i*2] = ddh;pbDest[i*2+1] = ddl;}pbDest[nLen*2] = '\\0';}