Куда деваются нули?

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

Реализовывал систему кодирования и декодирования, но в процессе куда-то деваются нули из строки. По заданию по пути надо было преобразовать в аски(в символах аски текст хранится в файле)

['10110011', '11000010', '11011100', '11110010', '00011100', '10011010',....]

Каждая ячейка массива с помощью:

    for i in range(len(self.text_out)):        
        self.text_out[i] = chr(int(self.text_out[i],2))

преобразовывалась в символ аски. Функция которая расшифровывает и составляет алфавит из предшествующей информации(проверял, там всё нормально), далее должна преобразовать набор аски символов в строку, состоящую из 0 и 1, но что то шло не так, и я решил запихнуть для проверки разбитие по байтам, но байты выходили разные. Реализовывал перевод из аски:

    self.text_out = []
    for i in range(len(self.text_in)):
        self.text_out.append(bin(ord(self.text_in[i]))[2:])     #переводим текст в бинарную строку
    self.str_bin = "".join(self.text_out)

    self.kostyl1 = []
    for i in range(math.ceil(len(self.str_bin) / 8)):
        if i != math.ceil(len(self.str_bin) / 8) - 1:  # разбиваем по байтам            РАДИ ПРОВЕРКИ
            self.kostyl1.append(self.str_bin[i * 8:i * 8 + 8])
        else:
            self.kostyl1.append("0" * (8 - len(self.str_bin[i * 8:])) + self.str_bin[i * 8:])

Но получался не тот массив, что указан в самом верху, а другой:

['10110011', '11000010', '11011100', '11110010', '11100100', '11010110', ....]

Как мы можем видеть, отличия начинаются с пятого элемента, где пропало три нуля.

Ответы

Ответов пока нет.