docs: def _readuint(self, length, start):
          """Read bits and interpret as an unsigned int."""
          if not length:
              raise InterpretError("Cannot interpret a zero length bitstring "
                                             "as an integer.")
          offset = self._offset
          startbyte = (start + offset) // 8
          endbyte = (start + offset + length - 1) // 8
  
          b = binascii.hexlify(bytes(self._datastore.getbyteslice(startbyte, endbyte + 1)))
          assert b
          i = int(b, 16)
          final_bits = 8 - ((start + offset + length) % 8)
          if final_bits != 8:
              i >>= final_bits
          i &= (1 << length) - 1
          return i