Bits { public static String toByteString(final byte... data) { final StringBuilder out = new StringBuilder(); if (data.length > 0) { for (int j = 7; j >= 0; --j) { out.append((data[data.length - 1] >>> j) & 1); } } for (int i = data.length - 2; i >= 0 ;--i) { out.append('|'); for (int j = 7; j >= 0; --j) { out.append((data[i] >>> j) & 1); } } return out.toString(); } private  Bits(); static boolean get(final byte[] data, final int index); static byte[] set(
		final byte[] data,
		final int index,
		final boolean value
	); static byte[] set(final byte[] data, final int index); static byte[] unset(final byte[] data, final int index); static void swap(
		final byte[] data, final int start, final int end,
		final byte[] otherData, final int otherStart
	); static int count(final byte[] data); static int count(final byte value); static byte[] shiftRight(final byte[] data, final int shift); static byte[] shiftLeft(final byte[] data, final int shift); static byte[] increment(final byte[] data); static byte[] invert(final byte[] data); static byte[] complement(final byte[] data); static byte[] flip(final byte[] data, final int index); static byte[] reverse(final byte[] array); static byte[] copy(final byte[] data, final int start, final int end); static boolean getAndSet(final byte[] array, final int index); static String toByteString(final byte... data); static byte[] fromByteString(final String data); static byte[] newArray(final int length); static byte[] newArray(final int length, final double p); static int toByteLength(final int bitLength); static int toInt(final byte[] data); static byte[] toBytes(final int value); static long toLong(final byte[] data); static byte[] toBytes(final long value);  }
@Test(dataProvider = "byteStrData") public void byteStr(final byte[] data, final String result) { Assert.assertEquals(Bits.toByteString(data), result); }