Я хочу преобразовать произвольное целое число в шестнадцатеричную строку с четным числом шестнадцатеричных символов. т.е. каждая последовательная пара символов в строке представляет байт целого числа (в старшем порядке).
Таким образом, шестнадцатеричная строка должна начинаться с нулевого символа, если это необходимо для создания четного числа символов.
Поскольку целое число произвольно, я заранее не знаю длину шестнадцатеричной строки. Есть много других вопросов о том, как добавить начальные нули, но все они предполагают, что я знаю длину желаемой шестнадцатеричной строки. Я нигде не нашел дубликат этого конкретного c вопроса.
Я счастлив использовать Python 3.8.
Я пробовал следующее:
i = 1000 # required output is '03e8'. i could be much larger or smaller
f"{i:02x}" # '3e8'
f"{i:0>2x}" # '3e8'
f"{i:x}".zfill(2) # '3e8'
"0" + f"{i:x}" if len(f"{i:x}") % 2 else f"{i:x}" # '03e8' as required, but really?!
Нет ли краткого способа сделать это с помощью спецификаторов формата?