Цитата(aspID @ Feb 4 2008, 19:28)

Есть ли у кого идеи, как наиболее оптимально реализовать преобразование 16-ричных данных в строку и обратно? ... На уровне UART ходят текстом 16ричные данные. ...
Вот, можете использовать, накидал по-быстрому. Тут для байтов, но переделать нетрудно:
Код
//==============================================================//
const char Table[16]={'0','1','2','3','4','5','6','7',
'8','9','A','B','C','D','E','F'};
char* BinToHex(unsigned char data, char *ptr)
{
*ptr++ = Table[(data>>4)& 0x0f];
*ptr++ = Table[data & 0x0f];
return ptr;
}
//==============================================================//
// Convert string of two HEX ASCII chars into binary value //
//==============================================================//
unsigned char HexToBin(char hi_char, char lo_char)
{
hi_char -= '0';
if (hi_char > 9)
{
hi_char &= ~0x20; // Convert lower case to UPPER CASE
hi_char -= 'A' - '0' - 0x0A;
}
lo_char -= '0';
if (lo_char > 9)
{
lo_char &= ~0x20; // Convert lower case to UPPER CASE
lo_char -= 'A' - '0' - 0x0A;
}
return hi_char<<4 | lo_char;
}
//==============================================================//