### Question:
ByteUtil { public static byte[] xor(byte[] a, byte[] b) { int n = a.length; if (b.length < n) { n = b.length; } byte[] c = new byte[n]; return xor(a, b, c); }  static byte [] intToBytes(int value); static void intToBytes(int value, byte[] buffer, int offset); static int bytesToInt(byte[] buffer); static int bytesToInt(byte[] buffer, int offset); static String toHex(byte[] bytes); static byte[] xor(byte[] a, byte[] b); static byte[] xor(byte[] a, byte[] b, byte[] out); static byte[] pad16(byte[] bytes); static byte[] pad(byte[] bytes, int size); static byte[] pad(byte[] bytes, int size, byte value); static byte[] pad(byte[] in, byte[] out, int size, byte value); static boolean checkMask(byte value, byte mask);  }### Answer:
@Test public void testXor() { byte[] a = { (byte) 0xAA, (byte) 0xAA, (byte) 0xAA }; byte[] b = { 0x55, (byte) 0xFF }; byte[] c = ByteUtil.xor(a, b); Assert.assertTrue( c[0] == (byte) 0xFF ); Assert.assertTrue( c[1] == (byte) 0x55 ); }