public BitString8 WithBit(int index, bool set = true) { var mask = (byte)(0x80 >> index); byte flags = _flags; if (set) flags |= mask; else flags &= (byte)~mask; return new BitString8(_length, flags); }