code: public static double bytesHighFirstToDouble(byte[] bytes, int start)
      {
          long l = ((long) bytes[start] << 56) & 0xFF00000000000000L;
          // 如果不强制转换为long，那么默认会当作int，导致最高32位丢失
          l |= ((long) bytes[1 + start] << 48) & 0xFF000000000000L;
          l |= ((long) bytes[2 + start] << 40) & 0xFF0000000000L;
          l |= ((long) bytes[3 + start] << 32) & 0xFF00000000L;
          l |= ((long) bytes[4 + start] << 24) & 0xFF000000L;
          l |= ((long) bytes[5 + start] << 16) & 0xFF0000L;
          l |= ((long) bytes[6 + start] << 8) & 0xFF00L;
          l |= (long) bytes[7 + start] & 0xFFL;
  
          return Double.longBitsToDouble(l);
      }
docs: 读取double，高位在前
  
  @param bytes
  @param start
  @return