示例#1
0
        /// <summary>
        /// Encode an array of signed longs into a ZigZag encoded array of unsigned longs.
        /// </summary>
        /// <param name="values"></param>
        /// <returns></returns>
        public static UInt64[] Encode(Int64[] values)
        {
            var output = new UInt64[values.Length];

            for (var i = 0; i < values.Length; i++)
            {
                output[i] = ZigZag.Encode(values[i]);
            }
            return(output);
        }
示例#2
0
        public void CompressSigned(Stream output, params Int64[] values)
        {
#if DEBUG
            if (null == output)
            {
                throw new ArgumentNullException(nameof(output));
            }
            if (null == values)
            {
                throw new ArgumentNullException(nameof(values));
            }
#endif

            CompressUnsigned(output, values.Select(symbol => ZigZag.Encode(symbol)).ToArray());
        }
示例#3
0
 /// <summary>
 /// Append value to stream.
 /// </summary>
 /// <param name="value"></param>
 public void Write(Int64 value)
 {
     Underlying.Write(ZigZag.Encode(value));
 }