def _read_sequence(self, size): numbers = [] size_in_bytes = seq.round_up8(size)/8 for i in range(size_in_bytes): number = self._read_to_number(1) binary = bin(number)[2:].zfill(8) if size - i*8 >= 8: numbers.append(binary) else: numbers.append(binary[8 - (size - i*8):]) return ''.join(numbers)
def _read_to_number(self, size): data = self._reader.read(seq.round_up8(size)/8) number = 0 for value in data: if len(value) == 1: value = ord(value) else: value = int(repr(value)[3:-1]) number <<= 8 number += int(value) return number