Как перевести bytes в последовательность едениц и нолей python

Рейтинг: 0Ответов: 1Опубликовано: 18.02.2023

Нужно преобразовать последовательность байтов в список из едениц и нолей например:

b'hello' == [0, 1, 0, 1, 0, 1, 0] # (примерно так, незнаю как будет)

Как лучше это сделать (можно любым способом, чтобы можно было дешифровать)?

Ответы

▲ 6Принят

Например:

result = []
for b in b'hello':
    result.extend(map(int, f'{b:08b}'))
print(result)

Вывод:

[0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1]

Или тоже самое в список списков, тогда поменять строку добавления на:

    result.append(list(map(int, f'{b:08b}')))

Вывод:

[[0, 1, 1, 0, 1, 0, 0, 0], [0, 1, 1, 0, 0, 1, 0, 1], [0, 1, 1, 0, 1, 1, 0, 0], [0, 1, 1, 0, 1, 1, 0, 0], [0, 1, 1, 0, 1, 1, 1, 1]]

Есть и другие варианты.