Преобразование от шестнадцатеричного числа к двоичному файлу, не теряя Python ведущего 0

У меня есть шестнадцатеричное значение в строке как

h = '00112233aabbccddee'

Я знаю, что могу преобразовать это в двоичный файл с:

h = bin(int(h, 16))[2:]

Однако это теряет ведущий 0. Там должен так или иначе сделать это преобразование, не теряя 0? Или лучший способ сделать это только для подсчета количества ведущего 0, прежде чем преобразование затем включит его впоследствии.

8
задан root 15 July 2010 в 17:46
поделиться

2 ответа

Я не думаю, что есть способ сохранить эти ведущие нули по умолчанию.

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

h_size = len(h) * 4

Затем вы можете использовать .zfill для заполнения нулями нужного вам размера:

h = ( bin(int(h, 16))[2:] ).zfill(h_size)
19
ответ дан 5 December 2019 в 05:55
поделиться

В принципе то же самое, но с разбивкой на 4 биндигита для каждой шестизначной цифры

''.join(bin(int(c, 16))[2:].zfill(4) for c in h)
2
ответ дан 5 December 2019 в 05:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: