code: public static BitStore asStore(byte[] bytes) {
  		if (bytes == null) throw new IllegalArgumentException("null bytes");
  		if (bytes.length * 8L > Integer.MAX_VALUE) throw new IllegalArgumentException("index overflow");
  		return new BytesBitStore(bytes, 0, bytes.length << 3, true);
  	}
docs: Exposes the bits of a byte array as a {@link BitStore}. The returned bit
  store is a live view over the byte array; changes made to the array are
  reflected in bit store and vice versa. The bit store contains every bit
  in the array with the zeroth indexed bit of the store taking its value
  from the least significant bit of the byte at index zero.
  
  @param bytes
  the byte data
  @return a {@link BitStore} over the bytes.
  @see #asStore(byte[], int, int)
  @see BitVector#fromByteArray(byte[], int)