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