code: public static long readLong(byte[] source, int position) {
          return (long) (source[position] & 0xFF) << 56
                  | (long) (source[position + 1] & 0xFF) << 48
                  | (long) (source[position + 2] & 0xFF) << 40
                  | (long) (source[position + 3] & 0xFF) << 32
                  | (long) (source[position + 4] & 0xFF) << 24
                  | (source[position + 5] & 0xFF) << 16
                  | (source[position + 6] & 0xFF) << 8
                  | (source[position + 7] & 0xFF);
      }
docs: Reads a 64-bit long from the given byte array starting at the given position.
  
  @param source   The byte array to read from.
  @param position The position in the byte array to start reading at.
  @return The read number.