Я пишу простую программу для декодирования двоичной строки, заданной следующим образом:
bin_str = "101100001101100001"
В начале, если первый символ представлен «1», то декодируются следующие восемь символов, которыебыло бы "01100001", где я передаю "01100001" в функцию, чтобы получить ее представление ascii.
def convert_ascii(binary):
c = chr(int(binary, 2))
return c
Передача "01100001" в вышеупомянутую функцию даст "a", который является первым декодированным символом.Далее, следующий символ с индексом 9 также представлен как «1», следовательно, следующие восемь символов также будут декодированы, что означает «01100001».Переход к вышесказанному также даст «а».
lst = []
fixed_length = 8
i = 0
while i < len(bin_str):
if binary[i] == "1":
fl_bin = binary[i+1:fixed_length+1] #issue here
ascii_rep = convert_ascii(fl_bin)
lst.append(ascii_rep)
i+=fixed_length+1
Проблема, с которой я сталкиваюсь, заключается в том, чтобы нарезать конкретную строку длины 8, которая является "01100001", из исходного bin_str, где я попытался нарезать по [i + 1: fixed_length + 1], но наНа втором этапе fl_bin стал "" вместо следующего "01100001".
Буду признателен за помощь.