глянул ваш пример.... все же не удержался
насколько я понимаю по тетрадам берем от входного байта сначало первую, вставляем символ из массива соответствующий данному полубайту (преобразование в стринг идет автоматом в этом случае получается?). затем с младшей так же.... Непойму зачем смещать на 4 бита влево.... Не проще домножить на 0xF0 ? Раз уж младшую тетраду так выделили?
Впрочем, Вам виднее
Спасибо за пример, просто и со вкусом.