void EncodeFinite(FbDecFloat @decimal, byte[] decBytes) { var biasedExponent = _decimalFormat.BiasedExponent(@decimal.Exponent); var coefficient = @decimal.Coefficient; var mostSignificantDigit = _coefficientCoder.EncodeValue(coefficient, decBytes); var expMSB = UnsignedRightShift(biasedExponent, _decimalFormat.ExponentContinuationBits); var expTwoBitCont = UnsignedRightShift(biasedExponent, _decimalFormat.ExponentContinuationBits - 2) & 0b011; if (mostSignificantDigit <= 7) { decBytes[0] |= (byte)((expMSB << 5) | (mostSignificantDigit << 2) | expTwoBitCont); } else { decBytes[0] |= (byte)(Combination2 | (expMSB << 3) | ((mostSignificantDigit & 0b01) << 2) | expTwoBitCont); } EncodeExponentContinuation(decBytes, biasedExponent, _decimalFormat.ExponentContinuationBits - 2); }