文字16進相互変換



/*
      
*/
int _HexToDec(char c)
{
	if( c>='a' && c<='f')
		return c-87;
	if( c>='0' && c<='9' )
		return c-48;

	return -1;
}


int _tmain(int argc, _TCHAR* argv[])
{
	//       
	char *p="    ";
	char BuffHex[32];
	char *pBuffHex = BuffHex;

	int i;
	for(i=0; i<strlen(p); ++i)
	{
		sprintf(pBuffHex, "%2x", (unsigned char)p[i]);
		pBuffHex+=2;

	}
	pBuffHex=BuffHex;

	
	//  
	char BuffChinese[32];
	int n,j;
	
	memset(BuffChinese, 0, 32);
	for(i=0,j=0; i<strlen(BuffHex); i+=2)
	{		
		n = _HexToDec(BuffHex[i+1]);
		n += _HexToDec(BuffHex[i])<<4;
		n |= 0xffffff00;
		BuffChinese[j++] = n;	
	}

	cout<<BuffChinese<<endl;

	return (0);
}