Я пытаюсь создать шестнадцатеричное представление некоторых данных, которые должны быть переданы (в частности, в нотации ASN.1). В некоторых моментах мне нужно преобразовать данные в их шестнадцатеричное представление. Поскольку данные передаются в виде последовательности байтов, шестнадцатеричное представление должно быть дополнено 0, если длина нечетна.
Пример:
>>> hex2(3)
'03'
>>> hex2(45)
'2d'
>>> hex2(678)
'02a6'
Цель состоит в том, чтобы найти простую, элегантную реализацию для hex2
.
В настоящее время я использую hex
, удаляя первые два символа, а затем добавляя строку с 0
, если ее длина нечетна. Тем не менее, я хотел бы найти лучшее решение для дальнейшего использования. Я посмотрел в str.format
, не найдя ничего, что дополняет кратность.