EncodeZigZag32() static private method

Encode a 32-bit value with ZigZag encoding.
ZigZag encodes signed integers into values that can be efficiently encoded with varint. (Otherwise, negative values must be sign-extended to 64 bits to be varint encoded, thus always taking 10 bytes on the wire.)
static private EncodeZigZag32 ( int n ) : uint
n int
return uint
 public void EncodeZigZag32()
 {
     Assert.AreEqual(0u, CodedOutputStream.EncodeZigZag32(0));
     Assert.AreEqual(1u, CodedOutputStream.EncodeZigZag32(-1));
     Assert.AreEqual(2u, CodedOutputStream.EncodeZigZag32(1));
     Assert.AreEqual(3u, CodedOutputStream.EncodeZigZag32(-2));
     Assert.AreEqual(0x7FFFFFFEu, CodedOutputStream.EncodeZigZag32(0x3FFFFFFF));
     Assert.AreEqual(0x7FFFFFFFu, CodedOutputStream.EncodeZigZag32(unchecked ((int)0xC0000000)));
     Assert.AreEqual(0xFFFFFFFEu, CodedOutputStream.EncodeZigZag32(0x7FFFFFFF));
     Assert.AreEqual(0xFFFFFFFFu, CodedOutputStream.EncodeZigZag32(unchecked ((int)0x80000000)));
 }
Example #2
0
 public void WriteSInt32(int value)
 {
     this.WriteRawVarint32(CodedOutputStream.EncodeZigZag32(value));
 }
Example #3
0
 public static int ComputeSInt32Size(int value)
 {
     return(CodedOutputStream.ComputeRawVarint32Size(CodedOutputStream.EncodeZigZag32(value)));
 }