BYTE ChangeAsciiToHexByte(char src_char)
{
BYTE src_byte = ( BYTE ) src_char;
BYTE result_byte = src_byte;
if( src_byte >= 0x30
&& src_byte <= 0x39 )
{
result_byte = src_byte - 0x30;
return result_byte;
}
if( src_byte >= 0x41
&& src_byte <= 0x46 )
{
result_byte = src_byte - 0x41 + 0x0a;
}
if( src_byte >= 0x61
&& src_byte >= 0x66 )
{
result_byte = src_byte - 0x61 + 0x0a;
}
return result_byte;
}
char *ChangeStringToHexBuf(char *pSrc, int len, char *pResultBuf)
{
int nLength = len/2 ;
BYTE first_byte;
BYTE second_byte;
BYTE result_byte;
for( int nIndex = 0; nIndex < nLength; nIndex ++ )
{
first_byte = ChangeAsciiToHexByte(pSrc[ nIndex * 2 ] );
second_byte = ChangeAsciiToHexByte(pSrc[ nIndex * 2 + 1]);
result_byte = ( BYTE ) ( first_byte * 16 + second_byte );
pResultBuf[ nIndex ] = result_byte;
}
pResultBuf[ nIndex ] = '\0';
return pResultBuf;
}
static char HexCode[] =
{
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'A', 'B', 'C', 'D', 'E', 'F',
};
char * ByteToHexString(BYTE src_byte,char *pHexCode)
{
int n = src_byte;
if (n < 0)
n = 256 + n;
pHexCode[0] = HexCode[n / 16];
pHexCode[1] = HexCode[n % 16];
return pHexCode;
}
char * ByteArrayToHexString(char *pSrc,int nLen ,char *pDesc)
{
for (int nIndex = 0 ; nIndex <nLen; nIndex ++ )
{
ByteToHexString( (BYTE) pSrc[nIndex] , pDesc );
pDesc = pDesc + 2;