code: public static double bytes_to_double(byte[] bytes, int offset) {
  		try {
  			long result = bytes[0+offset] & 0xff;
  			result <<= 8;
  			result |= bytes[1+offset] & 0xff;
  			result <<= 8;
  			result |= bytes[2+offset] & 0xff;
  			result <<= 8;
  			result |= bytes[3+offset] & 0xff;
  			result <<= 8;
  			result |= bytes[4+offset] & 0xff;
  			result <<= 8;
  			result |= bytes[5+offset] & 0xff;
  			result <<= 8;
  			result |= bytes[6+offset] & 0xff;
  			result <<= 8;
  			result |= bytes[7+offset] & 0xff;
  			return Double.longBitsToDouble(result);
  		} catch (IndexOutOfBoundsException x) {
  			throw new PickleException("decoding double: too few bytes");
  		}
  	}
docs: Convert a big endian 8-byte to a double.