### Question:
Longs { public static long reverse(long lng) { lng = (lng & 0x5555555555555555L) << 1 | (lng >> 1) & 0x5555555555555555L; lng = (lng & 0x3333333333333333L) << 2 | (lng >> 2) & 0x3333333333333333L; lng = (lng & 0x0F0F0F0F0F0F0F0FL) << 4 | (lng >> 4) & 0x0F0F0F0F0F0F0F0FL; return reverseBytes(lng); }  static long decode(String string); static long parseLong(String string); static long parseLong(String string, int radix); static String toBinaryString(long l); static String toHexString(long l); static String toString(long l); static long highestOneBit(long lng); static long lowestOneBit(long lng); static int numberOfLeadingZeros(long lng); static int numberOfTrailingZeros(long lng); static int bitCount(long lng); static long rotateLeft(long lng, int distance); static long rotateRight(long lng, int distance); static long reverseBytes(long lng); static long reverse(long lng); static final long MAX_VALUE; static final long MIN_VALUE; }### Answer:
@Test public void test_reverseJ() { assertEquals(0, Longs.reverse(0)); assertEquals(-1, Longs.reverse(-1)); assertEquals(0x8000000000000000L, Longs.reverse(1)); }