private byte[] toTowsComplementByteArray() {
		final byte[] array = toByteArray();
		if (get(length() - 1)) {
			for (int i = length(), n = array.length*Byte.SIZE; i < n; ++i) {
				Bits.set(array, i);
			}
		}
		Bits.reverse(array);
		return array;
	}
Returns the two's complement binary representation of this
big integer. The output array is in <i>big-endian</i>
byte-order: the most significant byte is at the offset position.

<p>Note: This representation is consistent with {@code java.lang.BigInteger}
byte array representation and can be used for conversion between the two
classes.</p>

@return the two's complement byte array representation
@throws IndexOutOfBoundsException
        if {@code bytes.length < (int)Math.ceil(length()/8.0)}
@throws NullPointerException it the give array is {@code null}.
jenetics/src/main/java/io/jenetics/internal/collection/BitArray.java