### Question:
BitUtilBig extends BitUtil { @Override public String toBitString(byte[] bytes) { StringBuilder sb = new StringBuilder(bytes.length * 8); byte lastBit = (byte) (1 << 7); for (byte b : bytes) { for (int i = 0; i < 8; i++) { if ((b & lastBit) == 0) sb.append('0'); else sb.append('1'); b <<= 1; } } return sb.toString(); } BitUtilBig(); @Override final short toShort(byte[] b, int offset); @Override void fromShort(byte[] bytes, short value, int offset); @Override final int toInt(byte[] b, int offset); @Override final void fromInt(byte[] bytes, int value, int offset); @Override final long toLong(int int0, int int1); @Override final long toLong(byte[] b, int offset); @Override final void fromLong(byte[] bytes, long value, int offset); @Override byte[] fromBitString(String str); @Override String toBitString(byte[] bytes); @Override String toString();  }### Answer:
@Test public void testToBitString() { assertEquals("0010101010101010101010101010101010101010101010101010101010101010", bitUtil.toBitString(Long.MAX_VALUE / 3)); assertEquals("0111111111111111111111111111111111111111111111111111111111111111", bitUtil.toBitString(Long.MAX_VALUE)); assertEquals("00101010101010101010101010101010", bitUtil.toBitString(bitUtil.fromInt(Integer.MAX_VALUE / 3))); assertEquals("10000000000000000000000000000000", bitUtil.toBitString((1L << 63), 32)); assertEquals("00000000000000000000000000000001", bitUtil.toBitString(1L << 32, 32)); }