Что-то запустался я с башевским printf. Надо всего лишь вот что. Есть число десятичное, его преобразовать в hex, выходная длина не более 4 символов, если результат меньше - забить справа нулями до длины 4 (например, FF->FF00 b ng). Диапазон входных данных узкий, поэтому гарантированно hex будет не более FFF. преобразование - легко, а как задать длину поля и заполнить пустое нулями - покажите, пожалуйста на практике.