Я не знаю точно, что такое кодировка hex8, но похоже, что вы пытаетесь превратить char
в двухбайтовую шестнадцатеричную строку? В этом случае вам не нужно ничего сложного, как у вас там. Просто сделайте что-то вроде этого:
char hexstring[3];
char character = 'f';
sprintf(hexstring, "%02x", character);
После этого фрагмента кода hexstring
будет "66"
. Если у вас есть целая строка, что-то вроде этого должно работать (при условии, что вы выделили соответствующую память перед вызовом функции):
void string2hex(char *hex, char *in)
{
while (*in)
{
hex += sprintf(hex, "%02x", *in);
in++;
}
}