Конечно, это возможно. Подумайте только, как изначально была реализована printf
...
Я не буду давать вам полное решение, только подсказки, на основе которых вы сможете поэкспериментировать с реализацией в коде:
8-битное число может быть выражено в виде 2 шестнадцатеричных цифр, которые содержат старшие и младшие 4 бита соответственно. Чтобы получить эти биты, вы можете использовать операторы bit-shift (>>
) и mask (&
).
Получив 4-разрядное значение, вы можете легко сопоставить его с правильной шестнадцатеричной цифрой, используя последовательность if
с, или (в качестве более элегантного решения) путем индексации в массив символов.