def __invert__(self) :
  """Return the bitwise complement of self"""
  B = self._B;
  l = self._l;
  if l <= B :
    return type(self)(((1<<l)-1)-self._x,l);
  b = type(self)(0,l);
  v = b._x;
  l %= B;
  m = (1<<B)-1;
  for i,x in enumerate(self._x) :
    v[i] = m-x;
  if l : v[-1] ^= (1<<(B-l))-1;
  return b;