code: private static double decode(
          byte[] data,
          int pointer
      ) {
  
          long ntp = 0L;
  
          for (int i = 0; i < 8; i++) {
              long unsigned = (data[i + pointer] & 0xFF);
              ntp |= (unsigned << (56 - i * 8));
          }
  
          // Festkomma vor Bit 32, deshalb Bits nach rechts schieben
          long integer = ((ntp >>> 32) & 0xFFFFFFFFL);
          long fraction = (((ntp & 0xFFFFFFFFL) * MIO) >>> 32);
          long off = (((integer & 0x80000000L) == 0) ? OFFSET_2036 : OFFSET_1900);
          long ut1 = (integer * MIO) + fraction - off;
  
          return ((ut1 + OFFSET_1900) / MIO_AS_DOUBLE);
  
      }
docs: NTP-Timestamp aus byte-Array dekodieren