code: public static long reverseBits(final long value) {
      final long b0 = JBBPUtils.reverseBitsInByte((byte) value) & 0xFFL;
      final long b1 = JBBPUtils.reverseBitsInByte((byte) (value >> 8)) & 0xFFL;
      final long b2 = JBBPUtils.reverseBitsInByte((byte) (value >> 16)) & 0xFFL;
      final long b3 = JBBPUtils.reverseBitsInByte((byte) (value >> 24)) & 0xFFL;
      final long b4 = JBBPUtils.reverseBitsInByte((byte) (value >> 32)) & 0xFFL;
      final long b5 = JBBPUtils.reverseBitsInByte((byte) (value >> 40)) & 0xFFL;
      final long b6 = JBBPUtils.reverseBitsInByte((byte) (value >> 48)) & 0xFFL;
      final long b7 = JBBPUtils.reverseBitsInByte((byte) (value >> 56)) & 0xFFL;
  
      return (b0 << 56) | (b1 << 48) | (b2 << 40) | (b3 << 32) | (b4 << 24) | (b5 << 16) | (b6 << 8) | b7;
    }
docs: Get the reversed bit representation of the value.
  
  @param value the value to be reversed
  @return the reversed value