ICSharpCode.SharpZipLib.Zip.Compression.DeflaterHuffman.Dcode C# (CSharp) Method

Dcode() static private method

static private Dcode ( int distance ) : int
distance int
return int
        static int Dcode(int distance)
        {
            int code = 0;
            while (distance >= 4) {
                code += 2;
                distance >>= 1;
            }
            return code + distance;
        }

Usage Example

 public void CompressBlock()
 {
     for (int i = 0; i < this.last_lit; i++)
     {
         int num  = (int)(this.l_buf[i] & 255);
         int num2 = (int)this.d_buf[i];
         if (num2-- != 0)
         {
             int num3 = DeflaterHuffman.Lcode(num);
             this.literalTree.WriteSymbol(num3);
             int num4 = (num3 - 261) / 4;
             if (num4 > 0 && num4 <= 5)
             {
                 this.pending.WriteBits(num & (1 << num4) - 1, num4);
             }
             int num5 = DeflaterHuffman.Dcode(num2);
             this.distTree.WriteSymbol(num5);
             num4 = num5 / 2 - 1;
             if (num4 > 0)
             {
                 this.pending.WriteBits(num2 & (1 << num4) - 1, num4);
             }
         }
         else
         {
             this.literalTree.WriteSymbol(num);
         }
     }
     this.literalTree.WriteSymbol(256);
 }
All Usage Examples Of ICSharpCode.SharpZipLib.Zip.Compression.DeflaterHuffman::Dcode