public void Reverse() { int[] newBits = new int[bits.Length]; int size = this.size; for (int i = 0; i < size; i++) { if (Get(size - i - 1)) { newBits[i >> 5] |= 1 << (i & 0x1F); } } bits = newBits; }