ByteAndBitConverter { public static byte[] toByteArray(long value) { byte[] bytes = new byte[8]; for (int i = 7; i >= 0; i--) { bytes[i] = (byte) (value & 0xFF); value >>= 8; } return bytes; } private  ByteAndBitConverter(); static byte[] toByteArray(long value); static byte[] toByteArray(int value); static BitSet intToBitSet(int i); static Boolean[] toBoolean(String hex); static String toHex(boolean[] bits); static String toHex(List<Boolean> bits);  }
@Test public void toByteArrayInt() { Assert.assertArrayEquals(new byte[4], ByteAndBitConverter.toByteArray(0)); Assert.assertArrayEquals( new byte[]{0, 0, 0, 1}, ByteAndBitConverter.toByteArray(1)); Assert.assertArrayEquals( new byte[]{0, 0, 0, 42}, ByteAndBitConverter.toByteArray(42)); Assert.assertArrayEquals( new byte[]{1, 0, 0, 0}, ByteAndBitConverter.toByteArray(1 << 24)); Assert.assertArrayEquals( new byte[]{1, 0, 42, 0}, ByteAndBitConverter.toByteArray((1 << 24) + (42 << 8))); Assert.assertArrayEquals( new byte[]{-1, -1, -1, -1}, ByteAndBitConverter.toByteArray(0xffffffff)); }
@Test public void toByteArrayLong() { Assert .assertArrayEquals(new byte[8], ByteAndBitConverter.toByteArray(Integer.toUnsignedLong(0))); Assert.assertArrayEquals( new byte[]{0, 0, 0, 0, 0, 0, 0, 1}, ByteAndBitConverter.toByteArray(Integer.toUnsignedLong(1))); Assert.assertArrayEquals( new byte[]{0, 0, 0, 0, 0, 0, 0, 42}, ByteAndBitConverter.toByteArray(Integer.toUnsignedLong(42))); Assert.assertArrayEquals( new byte[]{0, 0, 0, 0, 1, 0, 0, 0}, ByteAndBitConverter.toByteArray(Integer.toUnsignedLong(1 << 24))); Assert.assertArrayEquals( new byte[]{0, 0, 0, 0, 1, 0, 42, 0}, ByteAndBitConverter.toByteArray(Integer.toUnsignedLong((1 << 24) + (42 << 8)))); Assert.assertArrayEquals( new byte[]{-1, -1, -1, -1, -1, -1, -1, -1}, ByteAndBitConverter.toByteArray(0xffffffffffffffffL)); }