/// <summary> /// Converts an UnevenByte to EncodedLZByte based on the control bit- /// </summary> /// <param name="unevenByte"> UnevenByte to convert. </param> public EncodedLZByte ToEncodedByte(UnevenByte unevenByte) { // Check if control bit is 1 if (unevenByte[0] == 1) { unevenByte -= 1; var pointerData = unevenByte.GetBits(PointerByte.POINTER_SIZE); unevenByte -= PointerByte.POINTER_SIZE; var lengthData = unevenByte.GetBits(PointerByte.LENGTH_SIZE); return(new PointerByte(pointerData + 1, lengthData + 1)); } unevenByte -= 1; return(new RawByte((byte)unevenByte.Data)); }