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;
    }
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 ; }
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