Python преобразует int в шестнадцатеричную строку с четным количеством символовPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Python преобразует int в шестнадцатеричную строку с четным количеством символов

Сообщение Anonymous »

Я хочу преобразовать произвольное целое число в шестнадцатеричную строку с четным количеством шестнадцатеричных символов. т. е. каждая последовательная пара символов в строке представляет собой байт целого числа (в формате big-endian).

Таким образом, шестнадцатеричная строка должна начинаться с нулевого символа, если это необходимо в чтобы получить четное количество символов.

Поскольку целое число произвольное, я заранее не знаю длину шестнадцатеричной строки. Есть много других вопросов о том, как добавлять ведущие нули, но все они предполагают, что я знаю длину нужной шестнадцатеричной строки. Я нигде не нашел дубликата этого конкретного вопроса.

Я рад использовать 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?!
Разве нет краткого способа сделать это с помощью спецификаторов формата?

Подробнее здесь: https://stackoverflow.com/questions/600 ... characters
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»