code: public static void encode(long value, byte[] dst, int dstOffset) {
          int w = ((int)(value >> 32)) ^ 0x80000000;
          dst[dstOffset    ] = (byte)(w >> 24);
          dst[dstOffset + 1] = (byte)(w >> 16);
          dst[dstOffset + 2] = (byte)(w >> 8);
          dst[dstOffset + 3] = (byte)w;
          w = (int)value;
          dst[dstOffset + 4] = (byte)(w >> 24);
          dst[dstOffset + 5] = (byte)(w >> 16);
          dst[dstOffset + 6] = (byte)(w >> 8);
          dst[dstOffset + 7] = (byte)w;
      }
docs: Encodes the given signed long into exactly 8 bytes.
  
  @param value signed long value to encode
  @param dst destination for encoded bytes
  @param dstOffset offset into destination array