code: public static BitVector fromByteArray(byte[] bytes, int size) {
  		//TODO provide a more efficient implementation, perhaps based on Bits.asStore()
  		if (bytes == null) throw new IllegalArgumentException("null bytes");
  		if (size < 0) throw new IllegalArgumentException("negative size");
  		BigInteger bigInt = new BigInteger(1, bytes);
  		return fromBigIntegerImpl(bigInt, size);
  	}
docs: Creates a {@link BitVector} from the bits of a byte array. The byte array
  is in big-endian order. If the specified size is less than the number of
  bits in the byte array, the most-significant bits are discarded. If the
  size exceeds the number of bits in the byte array, the most-significant
  bits of the {@link BitVector} are padded with zeros.
  
  @param bytes
  the bits in big-endian order
  @param size
  the size of the returned bit vector
  @return a bit vector containing the specified bits
  @see Bits#asStore(byte[])