Обычно я бы рекомендовал использовать решения на основе sprintf
, рекомендованные другими. Но когда я написал инструмент, который должен был конвертировать миллиарды элементов в гекс, sprintf был слишком медленным. Для этого приложения я использовал массив из 256 элементов, который отображает байты в строки.
Это неполное решение для преобразования 1 байта, не забудьте добавить проверку границ и убедиться, что массив является статическим или глобальным, его повторное создание для каждой проверки может снизить производительность.
static const char hexvals[][3]= {"00", "01", "02", ... "FD", "FE", "FF"};
const char *byteStr = hexvals[number];