У меня есть шестнадцатеричное значение в строке как
h = '00112233aabbccddee'
Я знаю, что могу преобразовать это в двоичный файл с:
h = bin(int(h, 16))[2:]
Однако это теряет ведущий 0. Там должен так или иначе сделать это преобразование, не теряя 0? Или лучший способ сделать это только для подсчета количества ведущего 0, прежде чем преобразование затем включит его впоследствии.
Я не думаю, что есть способ сохранить эти ведущие нули по умолчанию.
Каждая шестнадцатеричная цифра переводится в 4 двоичные цифры, поэтому длина новой строки должна быть ровно в 4 раза больше исходной.
h_size = len(h) * 4
Затем вы можете использовать .zfill
для заполнения нулями нужного вам размера:
h = ( bin(int(h, 16))[2:] ).zfill(h_size)
В принципе то же самое, но с разбивкой на 4 биндигита для каждой шестизначной цифры
''.join(bin(int(c, 16))[2:].zfill(4) for c in h)