UnpackInline.cs 633 B

12345678910111213141516171819202122232425262728293031
  1. 
  2. namespace SharpCompress.Compressors.Rar.UnpackV1
  3. {
  4. internal partial class Unpack
  5. {
  6. private uint SlotToLength(uint Slot)
  7. {
  8. //uint LBits,Length=2;
  9. int LBits;
  10. uint Length=2;
  11. if (Slot<8)
  12. {
  13. LBits=0;
  14. Length+=Slot;
  15. }
  16. else
  17. {
  18. //LBits=Slot/4-1;
  19. LBits=(int)(Slot/4-1);
  20. Length+=(4 | (Slot & 3)) << LBits;
  21. }
  22. if (LBits>0)
  23. {
  24. Length+=getbits()>>(16-LBits);
  25. AddBits(LBits);
  26. }
  27. return Length;
  28. }
  29. }
  30. }