code: def _readuintle(self, length, start):
          
          if length % 8:
              raise InterpretError("Little-endian integers must be whole-byte. "
                                   "Length = {0} bits.", length)
          assert start + length <= self.len
          absolute_pos = start + self._offset
          startbyte, offset = divmod(absolute_pos, 8)
          val = 0
          if not offset:
              endbyte = (absolute_pos + length - 1) // 8
              chunksize = 4 # for 'L' format
              while endbyte - chunksize + 1 >= startbyte:
                  val <<= 8 * chunksize
                  val += struct.unpack('<L', bytes(self._datastore.getbyteslice(endbyte + 1 - chunksize, endbyte + 1)))[0]
                  endbyte -= chunksize
              for b in xrange(endbyte, startbyte - 1, -1):
                  val <<= 8
                  val += self._datastore.getbyte(b)
          else:
              data = self._slice(start, start + length)
              assert data.len % 8 == 0
              data._reversebytes(0, self.len)
              for b in bytearray(data.bytes):
                  val <<= 8
                  val += b
          return val
docs: Read bits and interpret as a little-endian unsigned int.